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

型を問わない汎用の関数(id型)

このレッスンでは、Objective-Cのid型を使って型を問わない汎用の関数を書く方法を学び、複数の型に対応できる柔軟な関数を作れるようになることを目標にします。「Objective-C id型 使い方」で調べている方向けです。

id型は、Objective-Cで「どんなオブジェクトでも受け取れる」ことを表す特別な型です。数値にも文字列にも同じロジックを使い回したいときに便利な、動的型付け的な性質を持っています。

サンプルコードでは、id larger(id a, id b)という定義により、@3のような数値オブジェクトと@"apple"のような文字列オブジェクトのどちらも同じ関数で比較できています。compare:メソッドがどちらの型にも共通して使える点がポイントです。

初心者がよくつまずくのが、id型を使うとコンパイル時の型チェックが効かなくなる点です。実行時にそのオブジェクトが本当にcompare:メソッドを持っているかは保証されず、間違った型を渡すと実行時エラーになります。

実際の開発現場では、型ごとに同じようなメソッドを何度も書かずに済む便利さの一方、型安全性とのトレードオフを理解して使う必要があります。

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

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

🎯
ここまでできればゴール達成!
型を問わず使い回せる、便利な比較関数が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)