gpt4 book ai didi

struct - 如何在 slice 内设置结构的字段?

转载 作者:IT王子 更新时间:2023-10-29 01:51:18 27 4
gpt4 key购买 nike

我声明了这样一个类型

type Klabel struct {
values []float64
label string
}

然后,我创建了一个这样的 slice

kdata := []Klabel

如何设置标签变量或将一段 float 附加到值?

我试过了

kdata[0].label = "test"

kdata := make([]Klabel, 10)

kdata[0].label = "test"

kdata = append(kdata[0], kdata[0].label = "test")

好吧,没有成功......

非常感谢您的帮助!提前致谢!

最佳答案

你发布了这个:

kdata := make([]Klabel, 10)

kdata[0].label = "test"

而且它有效。打印 kdata slice 时,输出为 ( 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:}]

slice (不像 map )是可寻址的。您可以通过简单地索引 slice 并为字段分配新值来更改元素(即结构)的字段。

例如:

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}

如果您想将一段 float 附加到元素的 values 字段:

vals := []float64{1.2, 2.3}

kdata[0].values = append(kdata[0].values, vals...) // Note the 3 dot ...

关于struct - 如何在 slice 内设置结构的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32250277/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com