在編程語(yǔ)言中,標(biāo)識(shí)符用于標(biāo)識(shí)目的。換句話說(shuō),標(biāo)識(shí)符是程序組件的用戶(hù)定義名稱(chēng)。在Go語(yǔ)言中,標(biāo)識(shí)符可以是變量名稱(chēng),函數(shù)名稱(chēng),常量,語(yǔ)句標(biāo)簽,包名稱(chēng)或類(lèi)型。
例:
package main import "fmt" func main() { var name = "nhooo" }
上例中共有三個(gè)標(biāo)識(shí)符:
main:包名稱(chēng)
main:函數(shù)名稱(chēng)
name:變量名
定義標(biāo)識(shí)符的規(guī)則:有一些定義有效的Go標(biāo)識(shí)符的有效規(guī)則。應(yīng)該遵守這些規(guī)則,否則,我們將得到一個(gè)編譯時(shí)錯(cuò)誤。
標(biāo)識(shí)符的名稱(chēng)必須以字母或下劃線(_)開(kāi)頭。并且名稱(chēng)中可能包含字母“ a-z”或“ A-Z”或數(shù)字0-9,以及字符“ _”。
標(biāo)識(shí)符的名稱(chēng)不能以數(shù)字開(kāi)頭。
標(biāo)識(shí)符的名稱(chēng)區(qū)分大小寫(xiě)。
關(guān)鍵字不能用作標(biāo)識(shí)符名稱(chēng)。
標(biāo)識(shí)符名稱(chēng)的長(zhǎng)度沒(méi)有限制,但是建議僅使用4到15個(gè)字母的最佳長(zhǎng)度。
例:
// 有效的標(biāo)識(shí)符: _geeks23 geeks gek23sd Geeks geeKs geeks_geeks // 無(wú)效的標(biāo)識(shí)符: 212geeks if default
注意:
在Go語(yǔ)言中,有一些預(yù)定義的標(biāo)識(shí)符可用于常量,類(lèi)型和函數(shù)。這些名稱(chēng)不是保留的,您可以在聲明中使用它們。以下是預(yù)定義標(biāo)識(shí)符列表:
常量: true, false, iota, nil 類(lèi)型: int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr, float32, float64, complex128, complex64, bool, byte, rune, string, error 函數(shù): make, len, cap, new, append, copy, close, delete, complex, real, imag, panic, recover
下劃線字符(_)表示的標(biāo)識(shí)符稱(chēng)為空白標(biāo)識(shí)符。它用作匿名占位符而不是常規(guī)標(biāo)識(shí)符,并且在聲明,操作數(shù)和賦值中具有特殊含義。
被允許從另一個(gè)包訪問(wèn)它的標(biāo)識(shí)符稱(chēng)為導(dǎo)出標(biāo)識(shí)符。導(dǎo)出的標(biāo)識(shí)符是符合以下條件的那些標(biāo)識(shí)符:
導(dǎo)出的標(biāo)識(shí)符名稱(chēng)的第一個(gè)字符應(yīng)為Unicode大寫(xiě)字母。
標(biāo)識(shí)符應(yīng)在包塊中聲明,或者是變量名,或者是方法名。
標(biāo)識(shí)符的唯一性意味著標(biāo)識(shí)符與程序或程序包中可用的另一組標(biāo)識(shí)符是唯一的,并且不會(huì)導(dǎo)出。