变量
- Go语言的变量类型声明,可以选择手动指定或自动推断,如下对于变量num的声明:
//手动指定int类型变量num
var num int = 1
//自动推断,使用 :=
num := 1
常量
- 常量使用const关键词声明
- 可以快速设置连续常量值,如下代码块:
package test
import (
"testing"
)
const (
ONE = iota + 1
TWO
THREE
FOUR
FIVE
)
func TestConst(t *testing.T) {
t.Log(ONE, TWO, THREE, FOUR, FIVE)
}
运行结果:
=== RUN TestConst
my_test.go:16: 1 2 3 4 5
--- PASS: TestConst (0.00s)
此代码块中出现的iota关键字,上网查阅后,作用如下:
- iota是golang语言的常量计数器,只能在常量的表达式中使用。
- iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。
- 使用iota能简化定义,在定义枚举时很有用。
引用:https://studygolang.com/articles/2192
- 对比特位进行快速连续设置值:
const (
TOM = iota << 1
JACK
Lee
)
func TestConst2(t *testing.T) {
a := 7 //7的二进制形式 0111
t.Log(a&TOM == TOM, a&JACK == JACK, a&Lee == Lee)
b := 1 //0001
t.Log(b&TOM == TOM, b&JACK == JACK, b&Lee == Lee)
}
运行结果:
=== RUN TestConst2
fib_test.go:27: true true true
fib_test.go:30: true false false
--- PASS: TestConst2 (0.00s)
有疑问加站长微信联系(非本文作者)