広告スペース(バナー)
🍎Objective-C レッスン
基本文法の基礎8▾
データ構造とオブジェクト指向7▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
レッスン 26 / 68
可変長引数の関数を作ろう
このレッスンでは、Objective-Cで可変長引数の関数を作る書き方を学び、いくつでも引数を渡せる関数を作れるようになることを目標にします。「Objective-C 可変長引数 使い方」で調べている方向けです。
C言語のstdarg.hを使うと、いくつでも引数を渡せる可変長引数の関数を作れます。「何個でも入る福袋」のようなイメージです。NSLog()もこの仕組みを使って実装されています。
サンプルコードでは、va_list・va_start・va_arg・va_endという一連のマクロを使い、sum()関数が渡された個数の引数を順に取り出して合計しています。C言語譲りの仕組みがそのままObjective-Cでも使える点に注目してみましょう。
初心者がよくつまずくのが、可変長引数の型や個数をプログラム側で把握する仕組みがない点です。呼び出し側が渡した引数の型や個数を間違えると、深刻なバグにつながります。
実際の開発現場では、ログ出力関数など、様々な種類・個数の値をまとめて処理したい場合にこの仕組みが使われます。
📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください
🧪 このサイトではObjective-Cを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。
🎯
ここまでできればゴール達成!
一部の設定を省略できる、使いやすい関数が作れるようになります。
一部の設定を省略できる、使いやすい関数が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)