切片:麻烦附加到结构中的切片

时间:2013-07-29 08:23:00

标签: arrays go slice

所以,我正试着习惯去!我遇到了一个问题,我尝试制作一个包含切片的新数据类型“RandomType”。

package main

type RandomType struct {
    RandomSlice []int
}

func main() {
    r := new(RandomType)
    r.RandomSlice = make([]int, 0)
    append(r.RandomSlice, 5)
}

这段代码会产生错误:

append(r.RandomSlice, 5) not used

但是,例如,如果我尝试

type RandomType struct {
    RandomInt int
}

func main() {
    r := new(RandomType)
    r.RandomInt = 5
}

这很好。

不确定我做错了什么。

1 个答案:

答案 0 :(得分:10)

append不会更改您提供的切片,但会构建一个新切片。

您必须使用返回的切片:

 r.RandomSlice = append(r.RandomSlice, 5)

有关追加in Effective Goin the Go blog的详细信息。