1.变量
go是一个静态语言
- 变量必须先定义后使用
- 变量必须要有类型
定义变量的方式:
var 名称 类型
var 名称 =值
名称 :=值
例如:
var num int
这样就存了一个num类型为int的变量
var num =1
上面使用简化的定义通过num自动判断后面的类型为int并赋值为1
num :=1
第三种方式就是使用这种方式赋值 使用冒号加等于赋值。
定义变量多个还可以使用这种方式
var ( name="make" age=18 ok bool )
注意:定义局部变量可以不使用,但是局部变量必须使用,定义了不使用会报错。
多变量赋值
var user1,user2,user3="hello",1,"hello3"
2.常量
常量,在定义的时候需要指定,并且不能修改。
const 名称 类型 =值
例如π
const PI float32 =3.1415926
注意: 常量使用大写
package main import "fmt" func main() { const ( x int = 16 y s = "abc" z ) fmt.Println(x, y, s, z) } 输出: 16 16 abc abc
由此可见y和z虽然没有赋值,但是它是自动集成上面的值。
3.iota
iota可以认为是一个特殊的常量。
package main import "fmt" func main() { const ( ERR1 = iota ERR2 = iota ERR3 = iota ERR4 = iota ) fmt.Println(ERR1, ERR2, ERR3, ERR4) } 输出: 0 1 2 3
说明iota是从0开始递增的数据。
package main import "fmt" func main() { const ( ERR1 = iota ERR2 ERR3 ERR4 ) fmt.Println(ERR1, ERR2, ERR3, ERR4) } 输出: 0 1 2 3
这样iota计数器会一直递增。
4.匿名变量
定义:
var _ 类型
package main func test() (int, bool) { return 1, true } func main() { var _ int _, ok := test() if ok { } }
例如这样一段程序,我需要调用test中获取bool的值,我不需要关心int的值,我只想获取bool的值所以匿名变量的作用就体现出来了。