1 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
對于?s := []int{}
:
因?yàn)樗?strong>初始化struct
為具有基礎(chǔ)數(shù)組、長度和容量的新類型(例如)
切片一旦初始化,就始終與保存其元素的底層數(shù)組相關(guān)聯(lián)。
請var s []int
參閱切片類型:
未初始化的切片的值為 nil。
零值:
當(dāng)通過聲明或調(diào)用 new 為變量分配存儲(chǔ)空間時(shí),或者通過復(fù)合文字或調(diào)用 make 創(chuàng)建新值且未提供顯式初始化時(shí),將給出變量或值一個(gè)默認(rèn)值。此類變量或值的每個(gè)元素都設(shè)置為其類型的零值:對于布爾值,為 false;對于數(shù)字類型,為 0;對于字符串,為 "" ;對于指針、函數(shù)、接口、切片、通道和映射,則設(shè)置為nil 。此初始化是遞歸完成的,因此,例如,如果未指定值,則結(jié)構(gòu)數(shù)組的每個(gè)元素都將其字段歸零。?這兩個(gè)簡單的聲明是等效的:
var i int
var i int = 0
后
type T struct { i int; f float64; next *T }
t := new(T)
以下成立:
t.i == 0
t.f == 0.0
t.next == nil
之后也是如此
var t T
我希望這有幫助。
- 1 回答
- 0 關(guān)注
- 116 瀏覽
添加回答
舉報(bào)