從零學go之基礎語法<一>
阿新 • • 發佈:2022-04-12
一、標誌符
Go語言中識別符號由字母數字和_
(下劃線)組成,並且只能以字母和_
開頭。
舉幾個例子:abc
,a12,_abc
, _123
。
二、關鍵字
break default func interface select case defer go map struct chan else goto package switch const fallthrough if range typecontinue for import return var
三、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 capnew append copy close delete complex real imag panic recover
四、可見性
1)宣告在函式內部,是函式的本地值,類似private 2)宣告在函式外部,是對當前包可見(包內所有.go檔案都可見)的全域性值,類似protect 3)宣告在函式外部且首字母大寫是所有包可見的全域性值,類似public
五、宣告方式
var(宣告變數), const(宣告常量), type(宣告型別) ,func(宣告函式)。
1、標準宣告
var 變數名 變數型別 例如:var name string
2、批量宣告
var ( a string b int c bool d float32 )
六、變數初始化
1、標準初始化
var 變數名 型別 = 表示式 var name string = "123" var age int = 18 var name, age = "123", 20
2、型別推導,編譯器會根據等號右邊的值來推導變數的型別完成初始化,從而初始化時可以省略型別
var name = "123" var age = 1
3、短變數宣告,不能用簡短宣告方式來單獨為一個變數重複宣告,:=左側至少有一個新變數,才允許多變數的重複宣告。這裡有個坑,會覆蓋全域性變數,且不會報錯。
func main() { one := 0 one := 1 // error: no new variables on left side of := }
func main() { one := 0 one, two := 1, 2 // two 是新變數,允許 one 的重複宣告。 }
4、匿名變數,在使用多重賦值時,如果想要忽略某個值,可以使用'_' 。匿名變數不佔用名稱空間,不會分配記憶體,所以匿名變數之間不存在重複宣告。:=
不能使用在函式外。‘‘_’’多用於佔位,表示忽略值。
func foo() (int, string) { return 10,"123"; } func main() { x, _ := foo() }
七、常量
1、宣告跟變數一樣,只是把var變成const
const pi = 3.14159 const ( pi = 3.14159 e = 2.7182 )
八、iota,常量計數器
const ( n1 = iota //0 n2 //1 n3 //2 n4 //3 )
const ( a, b = iota + 1, iota + 2 //1,2 c, d //2,3 e, f //3,4 )