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