広告スペース(バナー)
🐹Go レッスン
基本文法の基礎8
データ構造とオブジェクト指向7
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 42 / 68

スライスの平坦化(flatten)

このレッスンでは、Goで入れ子になったスライスを平坦化(flatten)する方法を学び、appendと可変長引数展開を組み合わせた書き方を理解することを目標にします。「Go言語 スライス flatten 実装」で調べている方向けです。

スライスの中に入れ子になったスライスがあるとき、それを「平らな」1つのスライスに展開することをflatten(平坦化)と呼びます。append...(可変長引数展開)を組み合わせて実装します。

サンプルコードでは、flatten()関数が[][]int型の入れ子スライスを受け取り、result = append(result, inner...)という形で内側のスライスを展開しながら1つの結果に追加しています。...を付けることで、スライスの中身を個別の値として展開できる点がポイントです。

初心者がよくつまずくのが、...を付け忘れてinnerというスライス自体を1つの要素として追加しようとしてしまうことです。展開が必要な場面と不要な場面を区別する必要があります。

実際の開発現場では、入れ子構造のデータをまとめて1つのリストとして扱いたいときや、多次元のツリー構造のデータを1つのリストにまとめたいときに、この考え方が応用されます。

📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください

🧪 このサイトではGoを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。

🎯
ここまでできればゴール達成!
入れ子になったデータを、1つのまとまったリストに整理できるようになります。
広告スペース(バナー)
広告スペース(記事内)