在計(jì)算機(jī)科學(xué)中,字面量(literal)是指源代碼中表示固定值的符號(hào)。幾乎所有的編程語(yǔ)言都具有對(duì)基本值的字面量表示,例如整數(shù)、浮點(diǎn)數(shù)以及字符串。例如:
var str = "test" // test就是字面量age := 18 // 18就是字面量
Golang中的字面量(literal)
Golang中字面量可以用在兩個(gè)地方:
如果變量初始化語(yǔ)句中沒(méi)有顯式指定類(lèi)型,則編譯器會(huì)根據(jù)字面量進(jìn)行類(lèi)型推斷。Golang中字面量只能表達(dá)基本類(lèi)型的值,不支持用戶(hù)自定義字面量。
Golang中字面量類(lèi)型整型字面量
可以使用十進(jìn)制格式也可以使用16進(jìn)制格式,例如:
6660x5a
浮點(diǎn)型字面量
可以使用標(biāo)準(zhǔn)的數(shù)學(xué)小數(shù)格式也可以使用科學(xué)計(jì)數(shù)法格式,例如:
3.143E2
復(fù)數(shù)類(lèi)型字面量
常見(jiàn)的表達(dá)形式如 a + bi,其中a、b都是實(shí)數(shù),i為虛數(shù)單位,例如:
1 + 1i
字符型字面量
字符使用單引號(hào)包裹,例如:
'a'
字符串字面量
字符串使用雙引號(hào)或反引號(hào)包裹,例如:
"Hello, World!"`Hello, World!`
復(fù)合字面量(Composite Literal)
復(fù)合字面量是指struct、array、slice和map這些類(lèi)型的變量初始化的同時(shí)并賦值。以map類(lèi)型為例說(shuō)明,以常規(guī)方式聲明map類(lèi)型變量并賦值:
student := make(map[string]interface{}, 2)student["name"] = "xiao ming"student["age"] = 10
使用復(fù)合字面量方式:
student := map[string]interface{}{"name": "xiao ming","age": "10",}