広告スペース(バナー)
🐹Go レッスン
基本文法の基礎8▾
データ構造とオブジェクト指向7▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
レッスン 23 / 68
スライスのmap的な処理(要素を変換する)
このレッスンでは、Goでスライスの各要素を変換するmap的な処理の書き方を学び、データの一括加工を行えるようになることを目標にします。「Go言語 スライス map 変換」で調べている方向けです。
Goには他の言語のようなmap()関数は標準にありませんが、forループで新しいスライスを作ることで同じことができます。「ベルトコンベアの上を通すと、全部の商品が同じように加工される機械」のようなイメージです。
サンプルコードでは、mapInts()関数がf func(int) intという関数を引数として受け取り、for i, n := range numsで元のスライスを1つずつ処理してresult[i] = f(n)という形で新しいスライスに変換結果を詰めています。関数を引数として渡すことで、変換のルールだけを差し替えて使い回せる汎用的な作りになっています。
初心者がよくつまずくのが、事前にmake([]int, len(nums))で結果を格納するスライスのサイズを確保しておく必要がある点です。サイズを確保せずappendだけで組み立てることもできますが、あらかじめ長さが分かっている場合はmakeで確保する方が効率的です。
実際の開発現場では、価格に消費税をかける、単位を変換するなど、データの一括加工の場面でこの書き方がよく使われます。
📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください
🧪 このサイトではGoを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。
🎯
ここまでできればゴール達成!
全員の点数を一律10%増しにするような、一括変換処理が作れるようになります。
全員の点数を一律10%増しにするような、一括変換処理が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)