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)
}