go言語のappend関数の使い方を教えてください。
Go言語では、append()関数が使われ、スライスに要素を追加し、新しいスライスを返す。
append()関数の構文は次の通りです:
newSlice := append(slice, element1, element2, ..., elementN)
その中で、スライスは追加する要素のスライスであり、element1、element2、…、elementN は追加する要素です。
以下はサンプルコードです:
package main
import "fmt"
func main() {
slice := []int{1, 2, 3}
newSlice := append(slice, 4, 5)
fmt.Println("Original slice:", slice)
fmt.Println("New slice:", newSlice)
}
出力結果は:
Original slice: [1 2 3]
New slice: [1 2 3 4 5]
append()関数は別のスライスを追加することもできます。以下はコードの例です:
package main
import "fmt"
func main() {
slice1 := []int{1, 2, 3}
slice2 := []int{4, 5}
newSlice := append(slice1, slice2...)
fmt.Println("Original slice 1:", slice1)
fmt.Println("Original slice 2:", slice2)
fmt.Println("New slice:", newSlice)
}
結果は:
Original slice 1: [1 2 3]
Original slice 2: [4 5]
New slice: [1 2 3 4 5]
append()関数を使用する際は、以下の点に注意する必要があります:
- append()関数は新しいスライスを返し、元のスライスは変更されません。
- 追加される要素の数がスライスの容量を超える場合、append()関数はより大きな基本配列を再割り当てし、元のスライスと新しいスライスが同じ基本配列ではなくなります。
- 追加する要素の数がスライスの容量を超えていない場合、append()関数は元のスライスの基礎となる配列に要素を追加します。
- 追加されるスライスが空の場合、append()関数は元のスライスを返します。
- 追加する要素がスライスの場合は、…演算子を使ってスライスを展開する必要があります。