指定されたインデックスのスライスに値を挿入する
Go では、特定のインデックスのスライスに値を挿入するには、スライスの長さ、容量、インデックスがその範囲内にあるかどうかbounds.
使用可能なインデックスへの挿入
挿入したいインデックスがスライスの既存要素の範囲内にある場合は、次の方法を使用できます。
slice1 := []int{1, 3, 4, 5} slice1 = append(slice1[:index+1], slice1[index:]...) slice1[index] = value
このアプローチ:
新しいインデックス
挿入したいインデックスが現在のスライスの長さより大きい場合は、新しい要素を収容できるスライスの容量。
index := 7 if index > cap(slice1) { newCap := cap(slice1) * 2 // Double the capacity slice1 = append(make([]int, len(slice1), newCap), slice1...) } slice1 = append(slice1[:index+1], slice1[index:]...) slice1[index] = value
このアプローチ:
スライスの末尾に挿入
スライスの末尾に挿入するには、新しい値を追加するだけです:
slice1 := []int{1, 3, 4, 5} slice1 = append(slice1, value)
「slices」パッケージの使用 (Go 1.21 の場合) )
Go バージョン 1.21 以降では、github.com/golang/exp/slices パッケージのスライス.Insert() 関数を使用できます:
import "github.com/golang/exp/slices" slice1 := []int{1, 3, 4, 5} slices.Insert(slice1, index, value)
例:
array1 := []int{1, 3, 4, 5} array2 := []int{2, 4, 6, 8} index := 1 // Index to insert at value := array2[2] // Value to insert // Insert value into array1 at index slice1 := array1[:index+1] slice2 := array1[index:] slice1 = append(slice1, value) slice1 = append(slice1, slice2...) array1 = slice1 // Result: [1, 6, 3, 4, 5]
以上がGo スライスの特定のインデックスに値を挿入するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。