Go - 配列:初めてのガイド
こんにちは、Go言語を学びたい皆さん!配列の世界に陪你案内するのを楽しみにしています。プログラミングを教えて数年経つ者として、配列を理解することはコーディングの冒険において非常に重要だと保証します。それでは、始めましょう!
配列とは?
まず、本棚を整理していることを想像してみましょう。固定された数のスロットがあり、それぞれのスロットには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