Go言語で配列の追加をする方法

Go言語で配列の追加をする方法

Go言語で配列に要素を追加する方法について説明します。
Go言語の配列は固定サイズであり、一度サイズを決定すると変更することはできません。
そのため、配列に要素を追加する場合は、新しい配列を作成し、既存の要素と新しい要素をコピーする必要があります。
しかし、一般的にはスライスを使用することでより柔軟に要素の追加が可能です。

配列に要素を追加する方法

1. 配列の再作成とコピー:
配列に要素を追加するには、まず新しい配列を作成し、元の配列の要素と追加する要素を新しい配列にコピーします。
以下にその方法を示します。

package main

import "fmt"

func main() {
  // 元の配列
  originalArray := [3]int{1, 2, 3}

  // 新しい配列を作成(サイズを1つ大きくする)
  newArray := [4]int{}

  // 元の配列の要素を新しい配列にコピー
  copy(newArray[:len(originalArray)], originalArray[:])

  // 新しい要素を追加
  newArray[len(originalArray)] = 4

  fmt.Println("新しい配列:", newArray)
}

この方法では、copy 関数を使用して元の配列の要素を新しい配列にコピーしています。
その後、新しい要素を追加することができます。

2. スライスを使用する方法:
Go言語では、スライスを使用することでより簡単に要素を追加することができます。
スライスは動的にサイズを変更できるため、配列の代わりにスライスを使用することが一般的です。

package main

import "fmt"

func main() {
  // 元のスライス
  originalSlice := []int{1, 2, 3}

  // スライスに要素を追加
  originalSlice = append(originalSlice, 4)

  fmt.Println("新しいスライス:", originalSlice)
}

append 関数を使用すると、スライスの末尾に新しい要素を追加することができます。
append 関数は、追加する要素の数に応じて内部的に必要なメモリを確保し、元のスライスの内容を新しいスライスにコピーします。

配列とスライスの違い

  • 配列:

配列は固定サイズで、作成時にサイズを指定します。
一度サイズを決定すると、そのサイズを変更することはできません。

  • スライス:

スライスは可変サイズのデータ構造で、要素の追加、削除、変更が可能です。
内部的には配列を使用しており、必要に応じてサイズを自動的に調整します。

まとめ

配列に要素を追加する方法として、元の配列のサイズを変更することはできないため、新しい配列を作成し、元の要素と新しい要素をコピーする方法があります。
しかし、Go言語ではスライスを使用することで、より簡単に要素の追加が可能です。
スライスを使うと、append 関数で簡単に要素を追加できるため、配列よりも一般的にこちらの方法が推奨されます。