这些结构之间的主要区别是什么?
type foo struct {
Name string `json:"name"`
}
和
type foo []struct {
Name string `json:"name"`
}
type foo1 struct {
Name string `json:"name"`
}
type foo2 []struct {
Name string `json:"name"`
}
简单理解为
type foo2 []foo1
第一个是一个名为的结构类型。它可以用通常的方式初始化:
// Initialize a foo
f1 := foo{"name1"}
// Initialize a foo slice
f1s := []foo {
foo{"name2"},
foo{"name3"},
}
第二种是命名切片类型,其元素是具有给定字段的匿名结构。它可以这样初始化:
f2 := foo {
{"name4"},
{"name5"},
}