4.1 文件名、關鍵字與標識符
Go 的源文件以 .go
爲後綴名存儲在計算機中,這些文件名均由小寫字母組成,如 scanner.go
。如果文件名由多個部分組成,則使用下劃線 _
對它們進行分隔,如 scanner_test.go
。文件名不包含空格或其他特殊字符。
一個源文件可以包含任意多行的代碼,Go 本身沒有對源文件的大小進行限制。
你會發現在 Go 代碼中的幾乎所有東西都有一個名稱或標識符。另外,Go 語言也是區分大小寫的,這與 C 家族中的其它語言相同。有效的標識符必須以字母(可以使用任何 UTF-8 編碼的字符或 _
)開頭,然後緊跟着 0 個或多個字符或 Unicode 數字,如:X56、group1、_x23、i、өԑ12。
以下是無效的標識符:
- 1ab(以數字開頭)
- case(Go 語言的關鍵字)
- a+b(運算符是不允許的)
_
本身就是一個特殊的標識符,被稱爲空白標識符。它可以像其他標識符那樣用於變量的聲明或賦值(任何類型都可以賦值給它),但任何賦給這個標識符的值都將被拋棄,因此這些值不能在後續的代碼中使用,也不可以使用這個標識符作爲變量對其它變量進行賦值或運算。
在編碼過程中,你可能會遇到沒有名稱的變量、類型或方法。雖然這不是必須的,但有時候這樣做可以極大地增強代碼的靈活性,這些變量被統稱爲匿名變量。
下面列舉了 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 代碼中的關鍵字保持的這麼少,是爲了簡化在編譯過程第一步中的代碼解析。和其它語言一樣,關鍵字不能夠作標識符使用。
除了以上介紹的這些關鍵字,Go 語言還有 36 個預定義標識符,其中包含了基本類型的名稱和一些基本的內置函數(第 6.5 節),它們的作用都將在接下來的章節中進行進一步地講解。
append | bool | byte | cap | close | complex | complex64 | complex128 | uint16 |
copy | false | float32 | float64 | imag | int | int8 | int16 | uint32 |
int32 | int64 | iota | len | make | new | nil | panic | uint64 |
println | real | recover | string | true | uint | uint8 | uintptr |
程序一般由關鍵字、常量、變量、運算符、類型和函數組成。
程序中可能會使用到這些分隔符:括號 ()
,中括號 []
和大括號 {}
。
程序中可能會使用到這些標點符號:.
、,
、;
、:
和 …
。
程序的代碼通過語句來實現結構化。每個語句不需要像 C 家族中的其它語言一樣以分號 ;
結尾,因爲這些工作都將由 Go 編譯器自動完成。
如果你打算將多個語句寫在同一行,它們則必須使用 ;
人爲區分,但在實際開發中我們並不鼓勵這種做法。