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的值所以匿名变量的作用就体现出来了。