Go 基础篇-变量

一、Go内建变量类型

bool
string
(u)int、(u)int8、(u)int16、(u)int32、(u)int64
uintptr 指针
byte
rune 字符型,32 位,类比 char
float32、float64
complex32、complex64 复数 
类型转换 type(varName)
func typeConversion () {
    var int a = 5
    var b = "str"
    c := 3
    var int d
    d = int(a / c) 
    fmt.Println(d, b)
}

二、变量定义

  • 四种变量定义类型:
第一种完全体:var name type = value
第二种简单体:var name = value //name根据value的类型自动识别类型
第三种最简体:name := value //只适用于函数体内,name根据value的类型自动识别类型
第四种包内聚合定义: var (name1 = value1 name2 = value2 ...)
变量定义
func definedVariable() {
    var a int = 5
    var b = "str"
    c, d := 3, "string"
    var e int   //整型默认初始值为0
    var f string //字符串默认初始值为""
    var g bool  //bool默认初始值为false
}
//包内变量
var {
    name1 = 100
    name2 = "abc"
    ...
}

三、变量和枚举类型

  • 两种常量定义:常量定义必须赋值
第一种完全体:const name type = value 
第二种简单体:const name = value //name根据value的类型自动识别类型
定义常量
func definedConst () {
    const fileName string = "readme.txt"
    const a, b = 12, 5
    var c int
    c = int(math.Sqrt(a*a + b*b)) // 由于类型不定,所以这里不需要强转,如果定义为 const a, b int = 3, 4,则需要强转
    fmt.Println(fileName, a, b, c)
}
  • 枚举类型:
    在Go语言中没有枚举类型,使用const来代替
自定义
const(
name1 = value1
name2 = value2
 ...
)
iota 实现枚举自增
iota 表达式枚举:const ( name1=iota表达式 name2 )
定义枚举
func dedinedEnmu () {
    const (
        doctor_type = 0
        nurse_type = 1
        pharmacist_type = 2
    )
fmt.Println(dcotor_type, nurse_type, pharmacist_type) // 0,1,2

const (
        doctor_type = iota
        nurse_type
        pharmacist_type 
    )
fmt.Println(dcotor_type, nurse_type, pharmacist_type) // 0,1,2
}

你可能感兴趣的:(Go 基础篇-变量)