Go 的源文件以 .go
為后綴名存儲在計算機中,這些文件名均由小寫字母組成,如 scanner.go
。如果文件名由多個部分組成,則使用下劃線 _
對它們進行分隔,如 scanner_test.go
。文件名不包含空格或其他特殊字符。
一個源文件可以包含任意多行的代碼,Go 本身沒有對源文件的大小進行限制。
你會發(fā)現(xiàn)在 Go 代碼中的幾乎所有東西都有一個名稱或標識符。另外,Go 語言也是區(qū)分大小寫的,這與 C 家族中的其它語言相同。有效的標識符必須以字符(可以使用任何 UTF-8 編碼的字符或 _
)開頭,然后緊跟著 0 個或多個字符或 Unicode 數(shù)字,如:X56、group1、_x23、i、??12。
以下是無效的標識符:
_
本身就是一個特殊的標識符,被稱為空白標識符。它可以像其他標識符那樣用于變量的聲明或賦值(任何類型都可以賦值給它),但任何賦給這個標識符的值都將被拋棄,因此這些值不能在后續(xù)的代碼中使用,也不可以使用這個標識符作為變量對其它變量進行賦值或運算。
在編碼過程中,你可能會遇到?jīng)]有名稱的變量、類型或方法。雖然這不是必須的,但有時候這樣做可以極大地增強代碼的靈活性,這些變量被統(tǒng)稱為匿名變量。
下面列舉了 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 個預定義標識符,其中包含了基本類型的名稱和一些基本的內(nèi)置函數(shù)(第 6.5 節(jié)),它們的作用都將在接下來的章節(jié)中進行進一步地講解。
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 |
程序一般由關鍵字、常量、變量、運算符、類型和函數(shù)組成。
程序中可能會使用到這些分隔符:括號 ()
,中括號 []
和大括號 {}
。
程序中可能會使用到這些標點符號:.
、,
、;
、:
和 …
。
程序的代碼通過語句來實現(xiàn)結(jié)構(gòu)化。每個語句不需要像 C 家族中的其它語言一樣以分號 ;
結(jié)尾,因為這些工作都將由 Go 編譯器自動完成。
如果你打算將多個語句寫在同一行,它們則必須使用 ;
人為區(qū)分,但在實際開發(fā)中我們并不鼓勵這種做法。