Go基礎之變量和常量
標識符和關鍵字
標識符
在編程語言中標識符就是程序員定義的具有特殊意義的詞,比如變量名、常量名、函數名等等。 Go語言中標識符由字母數字和_
(下划線)組成,並且只能以字母和_
開頭。 舉幾個例子:abc
, _
, _123
, a123
。
關鍵字
關鍵字是指編程語言中預先定義好的具有特殊含義的標識符。 關鍵字和保留字都不建議用作變量名。
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
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
。
也可聲明變量就賦值:
var 變量名 類型 = 表達式
類型推導
var name = "guo"
var age = 26
短變量:=聲明
在函數內部,可以使用更簡略的 :=
方式聲明並初始化變量。
匿名變量
匿名變量用一個下划線_
表示,匿名變量不占用命名空間,不會分配內存,所以匿名變量之間不存在重復聲明。
常量
const pi = 3.1415
const e = 2.7182
const同時聲明多個常量時,如果省略了值則表示和上面一行的值相同
const (
n1 = 100
n2
n3
)
常量n1
、n2
、n3
的值都是100
iota
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
)