01_Go变量和常量

103 阅读1分钟

Go常量与变量

一、变量

1.1 声明

变量声明:var 变量名 类型 = 表达式

var name string = "jinshw"
var age int = 20
fmt.Println(name, age)

1.2 类型推导

自动推导识别类型

var name2 = "jinshw2"
var age2 = 21
fmt.Println(name2, age2)

1.3 短变量声明

短变量声明: 在函数内部,可以使用更简略的 := 方式声明并初始化变量。

name3 := "jinshw3"
age3 := 21
fmt.Println(name3, age3)

1.4 匿名变量

匿名变量:在使用多重赋值时,如果想要忽略某个值

x, _ := getXY()
_, y := getXY()
fmt.Println("x=", x, "y=", y)
​
func getXY() (int, string) {
    return 10, "year"
}

二、变量

2.1 常量

常量:相对于变量,常量是恒定不变的值

const pi = 3.1415
const e = 2.7182
​
//多个常量也可以一起声明
const (
    pi2 = 3.1415
    e2  = 2.7182
)

const同时声明多个常量时,如果省略了值则表示和上面一行的值相同

const (
    n1 = 100
    n2
    n3
)

2.2 常量计数器iota

iota:是go语言的常量计数器,只能在常量的表达式中使用。

const (
    n61 = iota //0
    n62        //1
    n63        //2
    n64        //3
)

使用_跳过某些值

const (
    n612 = iota //0
    n622        //1
    _
    n642        //3
)

iota声明中间插队

const (
    n13 = iota //0
    n23 = 100  //100
    n33 = iota //2
    n43        //3
)
const n53 = iota //0

定义数量级

也就是由1变成了10000000000,也就是十进制的1024。同理2<<2表示将2的二进制表示向左移2位,也就是由10变成了1000,也就是十进制的8。)

const (
    _  = iota
    KB = 1 << (10 * iota)
    MB = 1 << (10 * iota)
    GB = 1 << (10 * iota)
    TB = 1 << (10 * iota)
    PB = 1 << (10 * iota)
)

多个iota定义在一行

const (
    a, b   = iota + 1, iota + 2 //1,2
    c, d                        //2,3
    ee, ff                      //3,4
)