Golang 变量

Golang变量声明,变量初始化,变量赋值,匿名变量,常量 const

变量声明

布尔类型: bool
整型:int8、byte、int16、int、uint、uintptr等 浮点类型:float32、float64
复数类型:complex64、complex128
字符串:string
字符类型:rune
错误类型:error
复合类型:

  • 指针(pointer)
  • 数组(array)
  • 切片(slice)
  • 字典(map)
  • 通道(chan)
  • 结构体(struct)
  • 接口(interface)
    var v1 int // 整型
    var v2 string //字符串
    var v3 [10]int  // 数组
    var v4 []int // 数组切片
    var v5 struct {  // 结构体
        f int 
    }
    var v6 *int  // 指针
    var v7 map[string]int // map,key为string类型, value为int类型
    var v8 func(a int) int // 匿名函数
    var {
        v1 int
        v2 string
    }

整形值范围

类型 长度(字节) 值范围
int8 1 -128~127
uint8(即byte) 1 0~255
int16 2 -32768~32767
uint16 2 0~65535
int32 4 -2147483648~2147483647
uint32 4 0~4294967295
int64 8 9223372036854775808~9223372036854775807
uint64 8 0~18446744073709551615
int 平台相关 平台相关
uint 平台相关 平台相关
uintptr 同指针 32位下为4字节
64位下为8字节

变量初始化

    var v1 int = 10
    var v2  = 10
    v3 := 10 //:=左侧的变量不应该是已经被声明过的,否则会导致编译错误

变量赋值

var v10 int
v10 = 123

交换两个变量
i, j = j, i

获取变量的类型reflect.TypeOf(var)

匿名变量

假设GetName()函数的定义如下,它返回3个值,分别为firstName、lastName和 nickName:

func GetName() (firstName, lastName, nickName string) {
    return "May", "Chan", "Chibi Maruko"
}

若只想获得nickName,则函数调用语句可以用如下方式编写:
_, _, nickName := GetName()

常量 const

常量可以是数值类型(包括整型、
浮点型和复数类型)、布尔类型、字符串类型

*注:==常量赋值可以是一个表达式,由于常量的赋值是一个编译期行为,但不能出现任何需要运行期才能得出结果的表达
式==