1 回答

TA貢獻2037條經(jīng)驗 獲得超6個贊
由于您聲明demo為匿名結(jié)構(gòu)的切片,因此您必須使用demo{}來構(gòu)造切片并{Text: "Hello", Type: "string"}構(gòu)造項目。
func main() {
d := demo{{
Text: "Hello",
Type: "Anon",
}}
fmt.Println(d)
// [{Hello Anon}]
}
作為一個切片,你也make可以,但是附加項目需要復(fù)制匿名結(jié)構(gòu)的定義:
func main()
d1 := make(demo, 0)
d1 = append(d1, struct {
Text string
Type string
}{"Hello", "Append"})
fmt.Println(d1)
// [{Hello Append}]
}
盡管它可以編譯,但它并不常見。只需定義命名的結(jié)構(gòu)類型,然后d作為其中的一部分。語法幾乎相同,但簡單明了:
// just defined struct type
type demo struct {
Text string
Type string
}
func main() {
d2 := []demo{{
Text: "Hello",
Type: "Slice",
}}
fmt.Println(d2)
// [{Hello Slice}]
}
游樂場:https ://go.dev/play/p/4kSXqYKEhst
- 1 回答
- 0 關(guān)注
- 117 瀏覽
添加回答
舉報