3 回答
TA贡献1851条经验 获得超5个赞
切片不仅是指向数组的指针,还具有包含其长度和容量的内部表示形式。
如果您想从中分得一杯slice,list可以这样做:
_ = Blah {
Values : list[:],
}
TA贡献1783条经验 获得超4个赞
幸运的是,Go并不像在OP中看起来那么冗长。这有效:
package main
type Item struct {
Key, Value string
}
type Blah struct {
Values []Item
}
func main() {
list := []Item{
{"Hello1", "World1"},
{"Hello2", "World2"},
}
_ = Blah{list[:]}
}
PS:让我建议不要在Go中编写C。
TA贡献2012条经验 获得超12个赞
当您刚开始使用Go时,请完全忽略数组,而仅使用slice是我的建议。数组很少使用,这会给Go初学者带来很多麻烦。如果有切片,则不需要指向它的指针,因为它是引用类型。
这是您的带有切片但没有指针的示例,这更惯用了。
package main
type Item struct {
Key string
Value string
}
type Blah struct {
Values []Item
}
func main() {
var list = []Item{
Item{
Key: "Hello1",
Value: "World1",
},
Item{
Key: "Hello1",
Value: "World1",
},
}
_ = Blah{
Values: list,
}
}
- 3 回答
- 0 关注
- 182 浏览
添加回答
举报