Go - 配列:初めてのガイド

こんにちは、Go言語を学びたい皆さん!配列の世界に陪你案内するのを楽しみにしています。プログラミングを教えて数年経つ者として、配列を理解することはコーディングの冒険において非常に重要だと保証します。それでは、始めましょう!

Go - Arrays

配列とは?

まず、本棚を整理していることを想像してみましょう。固定された数のスロットがあり、それぞれのスロットには1冊の本を収納できます。それがプログラミングにおける配列の概念です。同じタイプの要素の固定サイズのコレクションです。

配列の宣言

Goでは、配列を宣言するのは、「コンピュータ、特定の数のスロットを項目を収納するために必要だ」と言っているようなものです。以下のようにします:

var bookshelf [5]string

この行は、5つの文字列を収納できる配列bookshelfを作成します。本棚に5つのスロットを設け、それぞれに本のタイトルを収納できる thing です。

でも、まだあります!異なるタイプやサイズの配列を宣言することもできます:

var scores [3]int
var temperatures [7]float64
var flags [2]bool

覚えておいてください、配列を特定のサイズで宣言したら、そのサイズは固定されます。本棚を建てるようなものです。一旦建てたら、突然棚を追加したり取り除いたりすることはできません!

配列の初期化

配列を作成したので、棚に本を並べましょう!いくつかの方法があります。

方法1:宣言時に初期化

var fruits [3]string = [3]string{"apple", "banana", "cherry"}

ここでは、3つの特定の果物をすでに配置した果物バケツを作成しています。

方法2:短形式の宣言

colors := [4]string{"red", "blue", "green", "yellow"}

これは宣言と初期化を一気にするショートカット方法です。パレットに色を並べるようなものです。

方法3:部分的な初期化

var numbers [5]int = [5]int{1, 2, 3}

この場合、最初の3つの数字を指定しています。Goは自動的に残りをゼロで埋めます。5日間のプランナーで最初の3日間だけを計画しているようなものです。

方法4:Goにサイズを推測させる

animals := [...]string{"dog", "cat", "hamster", "fish"}

...を使用することで、「これを数えてくれ」とGoに指示しています。Goは正確な要素数の配列を作成します。

配列要素のアクセス

では、実際に配列を使うにはどうしたらいいのでしょうか?要素にアクセスするにはインデックスを使用します。インデックスは0から始まります(最初は少し奇妙に感じるかもしれませんが、慣れると簡単です)。

fruits := [3]string{"apple", "banana", "cherry"}
fmt.Println(fruits[0]) // 出力: apple
fmt.Println(fruits[1]) // 出力: banana
fmt.Println(fruits[2]) // 出力: cherry

本棚で考えれば、最初の本は位置0、2番目は位置1、と続きます。

要素を変更することもできます:

fruits[1] = "blueberry"
fmt.Println(fruits) // 出力: [apple blueberry cherry]

バナナをブルーベリーに替えました!

Goの配列詳細

基本的なことをカバーしたので、もう少し深く掘り下げましょう。

配列の長さ

配列の要素数を知るにはlen()関数を使用します:

numbers := [4]int{2, 4, 6, 8}
fmt.Println(len(numbers)) // 出力: 4

本棚に何冊の本があるかを尋ねるようなものです。

配列の反復

配列のすべての要素に対して何かを行いたい場合、forループを使用します:

colors := [4]string{"red", "blue", "green", "yellow"}
for i := 0; i < len(colors); i++ {
fmt.Printf("Color %d is %s\n", i+1, colors[i])
}

これは以下のように出力します:

Color 1 is red
Color 2 is blue
Color 3 is green
Color 4 is yellow

本棚を巡回し、それぞれの本のタイトルを読むようなものです。

多次元配列

時にはデータをより複雑な方法で整理する必要があります。多次元配列が役立ちます!配列の配列を考えましょう:

matrix := [3][3]int{
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
}

これは3x3のグリッドを作成します。小さなスプレッドシートやタックテックボードのようなものです。

多次元配列の要素にアクセスするには:

fmt.Println(matrix[1][2]) // 出力: 6

これは第2行(インデックス1)第3列(インデックス2)の要素にアクセスします。

Goの配列メソッド

以下はGoで配列で行える一般的な操作の表です:

操作 説明
宣言 配列を作成 var arr [5]int
初期化 初期値を設定 arr := [3]int{1, 2, 3}
アクセス 特定の要素を取得 element := arr[2]
修正 要素を変更 arr[1] = 10
長さ 配列のサイズを取得 len(arr)
反復 要素をループ for i := 0; i < len(arr); i++ { ... }
コピー 新しいコピーを作成 newArr := arr

他の言語とは異なり、Goには配列のpush、pop、またはsliceなどのビルトインメソッドはありません。より動的な操作が必要な場合は、スライスを使用します。スライスについては、次のレッスンで説明します!

締め括り

おめでとうございます!Goの配列の世界への第一歩を踏み出しました。配列の宣言、初期化、要素のアクセス、そして多次元配列までをカバーしました。

覚えておいてください、Goの配列はサイズが固定されています。これにより、正確な要素数が必要な場合に非常に便利です。信頼できる本棚のようなものです。常にそこにあり、データ管理において非常に重要です。

Goの旅を続ける中で、配列はどこにでも出てきます。より複雑なデータ構造の構築ブロックであり、効率的なデータ管理には不可欠です。

練習を続け、好奇心を持ち、最も重要なのは、コーディングを楽しむことです!次のレッスンでは、配列のより柔軟な兄弟であるスライスを探求します。それまでは、ハッピー・コーディング!

Credits: Image by storyset