2

だから、私はGoに慣れようとしています!そして、スライスを含む新しいデータ型「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
}

これはうまくいきます。

私が間違っているのかわかりません。

4

1 に答える 1

10

append提供するスライスは変更しませんが、新しいスライスを作成します。

返されたスライスを使用する必要があります:

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

追加の詳細については、Effective GoおよびGo ブログを参照してください。

于 2013-07-29T08:26:20.490 に答える