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

可変長引数(...)を使ってみよう

このレッスンでは、Goの可変長引数(...)の書き方を学び、いくつでも引数を渡せる柔軟な関数を作れるようになることを目標にします。「Go言語 可変長引数 使い方」で調べている方向けです。

Goには他の言語のような「引数の初期値(デフォルト引数)」はありませんが、...intのように書く可変長引数を使うと、いくつでも引数を渡せる関数を作れます。「何個でも入る福袋」のようなイメージです。

サンプルコードでは、sum(nums ...int) intという定義により、sum(1, 2, 3)のように複数の値を渡す場合と、sum()のように何も渡さない場合の両方に対応しています。実はおなじみのfmt.Printlnもこの仕組みを使っており、引数の数が違ってもそのまま動作できる理由がここにあります。

初心者がよくつまずくのが、可変長引数が関数内部でスライスとして扱われる点です。可変長引数はスライスとして関数内で扱われるため、スライスのメソッドをそのまま使うこともできます。

実際の開発現場では、任意の個数の値をまとめて処理したい関数を作りたいときに、この可変長引数がよく使われます。

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

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

🎯
ここまでできればゴール達成!
一部の設定を省略できる、使いやすい関数が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)