golangの配列のコピー方法

Go言語には配列をコピーするための方法がいくつかあります。

  1. ループを使用して反復処理をする : for ループを使用して、配列の要素を 1 つずつ別の配列にコピーできます。
func copyArray(source []int, destination []int) {
    for i := 0; i < len(source); i++ {
        destination[i] = source[i]
    }
}
  1. コピーする
func copyArray(source []int, destination []int) {
    copy(destination, source)
}
  1. スライス演算子([:])を使用して、配列要素のスライスを別の配列にコピーできます。
func copyArray(source []int, destination []int) {
    copy(destination[:], source[:])
}

上記3種類の方法は、いずれも参照のコピー、すなわち配列の内容ではなく配列の参照をコピーする「シャローコピー」であることに注意。配列の内容ではなく参照をコピーする「ディープコピー」を実施する場合は、ループを使用して反復処理するか、copy関数とスライス演算子[:]を組み合わせて実施することができる。

bannerAds