カテゴリ: Go言語 更新日: 2025/08/24

Go言語の多次元スライスの作り方と活用例

Go言語の多次元スライスの作り方と活用例
Go言語の多次元スライスの作り方と活用例

先生と生徒の会話形式で理解しよう

生徒

「先生、多次元スライスって何ですか?どうやって作るんでしょう?」

先生

「多次元スライスとは、簡単に言うと、スライスの中にスライスが入っているものです。イメージとしては、表のように行と列があるデータの管理に便利ですよ。」

生徒

「なるほど!表のようなものを作りたいときに使うんですね。具体的にはどうやって作るんですか?」

先生

「では、基本の作り方と使い方を一緒に見ていきましょう!」

1. 多次元スライスとは?

1. 多次元スライスとは?
1. 多次元スライスとは?

プログラミングで「多次元」とは、複数の方向を持ったデータ構造のことです。例えば、二次元は「縦」と「横」の2つの方向があり、表やマトリックスのようなイメージです。

Go言語のスライスは「動的にサイズが変わる配列」のようなものですが、多次元スライスは「スライスの中に別のスライスを入れた構造」です。

つまり、スライスのスライスとも呼ばれます。

2. 多次元スライスの基本的な作り方

2. 多次元スライスの基本的な作り方
2. 多次元スライスの基本的な作り方

まずは、二次元スライスの宣言(せんげん)と初期化(しょきか)を見てみましょう。


var matrix [][]int

これは「整数を入れる二次元スライス」を宣言しただけの状態です。まだ中身は空っぽです。

次に、実際に中に値を入れてみましょう。


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

このように書くと、3行3列の表のような形で値が入ります。

3. 多次元スライスの具体的な使い方

3. 多次元スライスの具体的な使い方
3. 多次元スライスの具体的な使い方

多次元スライスは、例えばゲームのマップや、表計算、画像のピクセル情報など、行と列のあるデータを扱うときに便利です。

以下の例では、二次元スライスを使って数値を出力する方法を示します。


package main

import "fmt"

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

    for i, row := range matrix {
        for j, val := range row {
            fmt.Printf("matrix[%d][%d] = %d\n", i, j, val)
        }
    }
}

このコードは、二重のループ(ループの中にループ)を使って、それぞれの行と列の値を取り出して表示しています。

4. 多次元スライスの初期化の注意点

4. 多次元スライスの初期化の注意点
4. 多次元スライスの初期化の注意点

多次元スライスは、行ごとに長さを変えられるという特徴があります。つまり、下の例のように行の長さがバラバラでも問題ありません。


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

これは「ジャグ配列」と呼ばれ、行ごとに列数が異なります。場合によってはこちらの方が使いやすいこともあります。

5. 動的に多次元スライスを作成する方法

5. 動的に多次元スライスを作成する方法
5. 動的に多次元スライスを作成する方法

多次元スライスはプログラムの実行中に動的に作ることもできます。例えば、行数だけ決めて、その後で各行の列数を決める方法です。


rows, cols := 3, 4
matrix := make([][]int, rows)
for i := 0; i < rows; i++ {
    matrix[i] = make([]int, cols)
}

このコードは、3行4列の空の多次元スライスを作っています。後で値を代入できます。

6. 実際に値を代入してみよう

6. 実際に値を代入してみよう
6. 実際に値を代入してみよう

上で作った空の多次元スライスに値を入れてみましょう。


for i := 0; i < rows; i++ {
    for j := 0; j < cols; j++ {
        matrix[i][j] = i*cols + j + 1
    }
}

このループは、左上から右下に向けて順に数字を入れる例です。

7. 多次元スライスの活用例:簡単な表の管理

7. 多次元スライスの活用例:簡単な表の管理
7. 多次元スライスの活用例:簡単な表の管理

多次元スライスは、例えば学校の成績表のようなデータを管理するのに便利です。行に学生、列に科目の点数を入れられます。


scores := [][]int{
    {80, 90, 85},  // 学生Aの点数
    {70, 75, 80},  // 学生Bの点数
    {90, 95, 100}, // 学生Cの点数
}

このように多次元スライスを使うことで、行と列でデータをわかりやすく管理できます。

8. 多次元スライスを使うときのポイント

8. 多次元スライスを使うときのポイント
8. 多次元スライスを使うときのポイント
  • スライスのスライスなので、行ごとに長さを変えられる。
  • 初期化のときに中身を直接書くか、make関数で動的に作る方法がある。
  • アクセスするときは、matrix[行番号][列番号]のように指定する。
  • ループ処理を使うと、簡単に全データを扱える。
カテゴリの一覧へ
新着記事
Go言語の構造体でインターフェースを実装する方法を初心者向けにやさしく解説!
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
Go言語の文字列フォーマット!fmt.Sprintfで簡単に出力を整形する方法
Go言語のエラーと例外の違いを初心者向けに整理!わかりやすく解説
人気記事
No.1
Kotlin・Go・Swift記事の人気No1
Swiftのwhile文とrepeat while文を完全マスター!初心者にもわかる繰り返し処理の使い方と違い
No.2
Kotlin・Go・Swift記事の人気No2
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.3
Kotlin・Go・Swift記事の人気No3
Swift入門ガイド|基本構文と書き方をマスターしよう
No.4
Kotlin・Go・Swift記事の人気No4
Kotlinの正規表現(Regex)の使い方をやさしく解説!文字列操作の基本を初心者向けに学ぼう
No.5
Kotlin・Go・Swift記事の人気No5
Kotlinのwhen式を完全ガイド!初心者でもわかるパターンマッチング的な使い方
No.6
Kotlin・Go・Swift記事の人気No6
Kotlinで画面を作る!レイアウトXMLとビューの基本操作をやさしく解説
No.7
Kotlin・Go・Swift記事の人気No7
Kotlinのコンパニオンオブジェクトとは?初心者向けに使い方と役割をわかりやすく解説!
No.8
Kotlin・Go・Swift記事の人気No8
Swiftのオプショナル型とは?初心者でもわかる使い方とアンラップの基礎