作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我声明了这样一个类型
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/
我是一名优秀的程序员,十分优秀!