1 回答
TA贡献2037条经验 获得超6个赞
由于您声明demo为匿名结构的切片,因此您必须使用demo{}来构造切片并{Text: "Hello", Type: "string"}构造项目。
func main() {
d := demo{{
Text: "Hello",
Type: "Anon",
}}
fmt.Println(d)
// [{Hello Anon}]
}
作为一个切片,你也make可以,但是附加项目需要复制匿名结构的定义:
func main()
d1 := make(demo, 0)
d1 = append(d1, struct {
Text string
Type string
}{"Hello", "Append"})
fmt.Println(d1)
// [{Hello Append}]
}
尽管它可以编译,但它并不常见。只需定义命名的结构类型,然后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 关注
- 88 浏览
添加回答
举报