スライスのキャパシティを拡張する方法は何ですか?

Go言語では、append()関数を使用してスライスの拡張を実現することができます。

append()関数の構文は以下のようになります:

append(s []T, x ...T) []T

sはスライスの拡張を待っていることを示し、xは追加する要素を表します。

append()関数は、追加する要素を元のスライスに追加します。元のスライスの容量が足りない場合は、自動的に拡張されます。拡張する際には、新しい基盤配列が作成され、元の要素が新しい配列にコピーされ、そして新しい要素が追加されます。

append()関数の注意点は、新しいスライスを返すことです。したがって、append()関数で容量を拡張する際には、返り値を元のスライス変数に再度代入する必要があります。

以下是一个代码示例:

package main

import "fmt"

func main() {
    s := []int{1, 2, 3}
    fmt.Printf("原始slice:%v,容量:%d\n", s, cap(s))

    s = append(s, 4, 5, 6)
    fmt.Printf("扩容后的slice:%v,容量:%d\n", s, cap(s))
}

出力結果:

原始slice:[1 2 3],容量:3
扩容后的slice:[1 2 3 4 5 6],容量:6

元々のスライスの容量は3で、append()関数で3つの要素が追加された後、スライスは自動的に6に拡張されました。

bannerAds