標識符和關鍵字
標識符
標識符只能以字母和_
組成,並且只能以字母和_
開頭。
關鍵字
Go中有25個關鍵字:
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
變量
變量聲明
變量需要先聲明,再使用。其語法如下:
var name string
其數據類型有:
- string,字符串
- int,整型
- bool,布爾型
上面這種是一個變量一個變量的聲明,go也有批量聲明方式:
var (
name string
age int
isBoy bool
)
變量的初始化:
func main(){
name = "joker"
age = 18
isBoy = true
}
注意:
Go語言中非全局變量聲明瞭必須使用,不使用則編譯不過去。
變量還可以聲明的同時並賦值:
var name string = "Joker"
也可以根據值來判斷變量是什麼類型:
var age = 14
還可以用簡短變量聲明(只能在函數體裏使用):
name := "Joker"
fmt.Print(name)
匿名變量
匿名變量不佔用命名空間,不會分配內存,所以匿名變量之間不存在重複聲明。
匿名變量用_
來表示,如下:
func foo(int, string){
return 10, "Joker"
}
func main(){
x, _ = foo()
_, y = foo()
}
注意事項
- 函數外的每個語句都必須以關鍵字開頭,例如
var
func
等; - :=不能使用在函數體外;
_
多用於佔位符,表示忽略值;- 同一個作用域中不能重複聲明同名的變量;
常量
常量是恆定不變的值,聲明常量的關鍵字是const
。
常量在定義的時候必須賦值,如下:
const c1 = 3.14159
多個常量也可以一起聲明,如下:
const (
c1 = 3.14
c2 = 0.68
)
在批量聲明常量的時候,如果其中有一個常量沒有賦值,其內容和上一個常量一樣,如下c2,c3的內容也爲200:
const (
c1 = 200
c2
c3
)
iota
iota
是go語言中的一種常量計數器,只能在常量的表達式中使用。
iota
在const
關鍵字出現的時候被重置爲0,const
中的變量每聲明一行常量聲明將使iota
計數一次,iota
可理解爲是const
語句塊中的行索引,使用iota
能簡化定義,在定義枚舉時很有用,如下:
const (
n1 = iota // n1=0
n2 // n2=1
n3 // n3=2
)
幾種常見的用法:
(1)使用_
跳過某些值
const (
n1 = iota //0
n2 //1
_
n4 //3
)
(2)iota
聲明中間插隊
const (
n1 = iota //0
n2 = 100 //100
n3 = iota //2
n4 //3
)
const n5 = iota //0
(3)定義數量級
const (
_ = iota
KB = 1 << (10 * iota)
MB = 1 << (10 * iota)
GB = 1 << (10 * iota)
TB = 1 << (10 * iota)
PB = 1 << (10 * iota)
)
(4)、多個iota
定義在一行
const (
a, b = iota + 1, iota + 2 //1,2
c, d //2,3
e, f //3,4
)