变量
package main
import "fmt"
func main() {
var a int = 1
fmt.Println(a)
//var可以声明一个或多个变量
var b, c string = "a", "b"
fmt.Println(b, c)
//声明为没有相应初始化的变量是零值的(int的零值是0, string的零值是空)
var d int
fmt.Println(d)
//Go将推断初始化变量的类型
//(:=)简短变量声明一般用于局部变量的声明和初始化,var往往是用在需要先指定变量类型稍后再赋值的
//不过它有一个限制,那就是它只能用在函数内部;在函数外部使用则会无法编译通过,所以一般用var方式来定义全局变量
e := true
fmt.Println(e)
//_(下划线)是个特殊的变量名,任何赋予它的值都会被丢弃
_, f := 7, 8
fmt.Println(f)
}
1
a b
0
true
8
常量
// Go支持字符, 字符串, 布尔值和数值的常量
package main
import "fmt"
//用 const 关键字定义常量
const a string = "A"
func main() {
fmt.Println(a)
//const 可以定义一个或多个常量
const b, c = 1, 3
fmt.Println(b, c)
//表达式里可以有常量, 但不能有变量
const d = 4 - b
fmt.Println(d)
}
A
1 3
3
常量计数器
- iota是常量的计数器, 从0开始, 组中每定义1个常量自动递增1
- 每遇到一个const关键字, iota就会重置为0
package main
import "fmt"
const (
GB int = 1 << (iota * 10)
MB int = 1 << (iota * 10)
KB int = 1 << (iota * 10)
)
const (
a int = iota
b
)
func main() {
fmt.Println(GB, MB, KB)
fmt.Println(a, b)
}
1 1024 1048576
0 1