在編程語言中標識符就是程序員定義的具備特殊意義的詞,好比變量名、常量名、函數名等等。 Go語言中標識符由字母數字和_
(下劃線)組成,而且只能以字母和_
開頭。 舉幾個例子:abc
, _
, _123
, a123
。程序員
關鍵字是指編程語言中預先定義好的具備特殊含義的標識符。 關鍵字和保留字都不建議用做變量名。編程
Go語言中有25個關鍵字:app
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
Go語言中還有37個保留字。編程語言
Constants: true false iota nil Types: int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr float32 float64 complex128 complex64 bool byte rune string error Functions: make len cap new append copy close delete complex real imag panic recover
Go語言中的變量須要聲明後才能使用,同一做用域內不支持重複聲明。 而且Go語言的變量聲明後必須使用。函數
var 變量名 變量類型 var name string var age int var isOk bool
var ( a string b int c bool d float32 )
整型和浮點型變量的默認值爲0
。 字符串變量的默認值爲空字符串
。 布爾型變量默認爲false
。 切片、函數、指針變量的默認爲nil
。ui
也可聲明變量就賦值:指針
var 變量名 類型 = 表達式
var name = "guo" var age = 26
在函數內部,能夠使用更簡略的 :=
方式聲明並初始化變量。code
匿名變量用一個下劃線_
表示,匿名變量不佔用命名空間,不會分配內存,因此匿名變量之間不存在重複聲明。索引
const pi = 3.1415 const e = 2.7182
const同時聲明多個常量時,若是省略了值則表示和上面一行的值相同內存
const ( n1 = 100 n2 n3 )
常量n1
、n2
、n3
的值都是100
iota
是go語言的常量計數器,只能在常量的表達式中使用
iota
在const關鍵字出現時將被重置爲0。const中每新增一行常量聲明將使iota
計數一次(iota可理解爲const語句塊中的行索引)。 使用iota能簡化定義,在定義枚舉時頗有用
const ( n1 = iota //0 n2 //1 n3 //2 n4 //3 )
使用_
跳過某些值
const ( n1 = iota //0 n2 //1 _ n4 //3 )
iota
聲明中間插隊
const ( n1 = iota //0 n2 = 100 //100 n3 = iota //2 n4 //3 ) const n5 = iota //0
定義數量級 (這裏的<<
表示左移操做,1<<10
表示將1的二進制表示向左移10位,也就是由1
變成了10000000000
,也就是十進制的1024。同理2<<2
表示將2的二進制表示向左移2位,也就是由10
變成了1000
,也就是十進制的8。)
const ( _ = iota KB = 1 << (10 * iota) MB = 1 << (10 * iota) GB = 1 << (10 * iota) TB = 1 << (10 * iota) PB = 1 << (10 * iota) )
多個iota
定義在一行
const ( a, b = iota + 1, iota + 2 //0+1,0+2 c, d //1+1,1+2 e, f //2+1,2+2 )