2 回答
TA贡献1802条经验 获得超6个赞
你发了这个:
kdata := make([]Klabel, 10)
kdata[0].label = "test"
它有效。打印kdata切片时,输出为 ( Go Playground ):
[{[] test} {[] } {[] } {[] } {[] } {[] } {[] } {[] } {[] } {[] }]
输出显示kdata有 10 个元素,第一个元素具有标签值:"test"。
为了更清楚,打印:
fmt.Printf("%+v", kdata)
输出:
[{values:[] label:test} {values:[] label:} {values:[] label:} {values:[] label:} {values:[] label:} {values:[] label:} {values:[] label:} {values:[] label:} {values:[] label:} {values:[] label:}]
切片(与地图不同)是可寻址的。您可以通过简单地索引切片并为字段分配新值来更改元素(即结构)的字段。
例如:
kdata[0].label = "test"
kdata[0].values = []float64{1.1, 2.2}
kdata[0].values = append(kdata[0].values, 3.3)
fmt.Printf("%+v", kdata[0])
输出:
{values:[1.1 2.2 3.3] label:test}
如果要将一片浮点数附加到values元素的字段:
vals := []float64{1.2, 2.3}
kdata[0].values = append(kdata[0].values, vals...) // Note the 3 dot ...
TA贡献1868条经验 获得超4个赞
作为另一个答案的替代方案,您也可以这样做:
kdata := []Klabel{{label: "test"}}
但请注意,切片长度将为 1 而不是 10,因此它并不完全等效。
- 2 回答
- 0 关注
- 147 浏览
添加回答
举报