Struct 如何在切片中设置结构的字段?
我声明了一个这样的类型Struct 如何在切片中设置结构的字段?,struct,go,slice,Struct,Go,Slice,我声明了一个这样的类型 type Klabel struct { values []float64 label string } kdata := []Klabel 然后,我创建了一个这样的切片 type Klabel struct { values []float64 label string } kdata := []Klabel 如何设置label变量或向值附加一个浮动片段 我试过了 kdata[0].label = "test" 及 及 嗯,
type Klabel struct {
values []float64
label string
}
kdata := []Klabel
然后,我创建了一个这样的切片
type Klabel struct {
values []float64
label string
}
kdata := []Klabel
如何设置label变量或向值附加一个浮动片段
我试过了
kdata[0].label = "test"
及
及
嗯,没有成功
因此,任何帮助都是感激的!提前谢谢 您发布了以下内容:
kdata := make([]Klabel, 10)
kdata[0].label = "test"
它是有效的。打印kdata
切片时,输出为():
输出显示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:}]
{values:[1.1 2.2 3.3] label:test}
切片(与贴图不同)是可寻址的。您可以通过简单地索引切片并为字段分配新值来更改元素(即结构)的字段 例如:
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:[] label:test} {values:[] label:} {values:[] label:} {values:[] label:} {values:[] label:} {values:[] label:} {values:[] label:} {values:[] label:} {values:[] label:} {values:[] label:}]
{values:[1.1 2.2 3.3] label:test}
如果要在元素的值
字段中附加浮动片段,请执行以下操作:
vals := []float64{1.2, 2.3}
kdata[0].values = append(kdata[0].values, vals...) // Note the 3 dot ...
您发布了以下内容:
kdata := make([]Klabel, 10)
kdata[0].label = "test"
它是有效的。打印kdata
切片时,输出为():
输出显示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:}]
{values:[1.1 2.2 3.3] label:test}
切片(与贴图不同)是可寻址的。您可以通过简单地索引切片并为字段分配新值来更改元素(即结构)的字段 例如:
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:[] label:test} {values:[] label:} {values:[] label:} {values:[] label:} {values:[] label:} {values:[] label:} {values:[] label:} {values:[] label:} {values:[] label:} {values:[] label:}]
{values:[1.1 2.2 3.3] label:test}
如果要在元素的值
字段中附加浮动片段,请执行以下操作:
vals := []float64{1.2, 2.3}
kdata[0].values = append(kdata[0].values, vals...) // Note the 3 dot ...
作为另一个答案的替代方案,您也可以这样做:
kdata := []Klabel{{label: "test"}}
()
但是请注意,切片长度将是1而不是10,因此它并不完全相等。作为另一个答案的替代方法,您也可以这样做:
kdata := []Klabel{{label: "test"}}
()
但是请注意,切片长度将是1而不是10,因此它并不完全相等。嗯,没错,它是有效的。下次我将更彻底地阅读编译器中的错误消息。。。谢谢你的回答!嗯,是的,它起作用了。下次我将更彻底地阅读编译器中的错误消息。。。谢谢你的回答!