計算型プロパティ

🔍 例:var id: String { name } の意味

var id: String { name }は、実際には次の省略形です:

つまり、id というプロパティを「name を返すだけの読み取り専用プロパティ」として定義しています。

✅ なぜこうするのか?

Identifiable プロトコルを適合させるときに 一意のIDを返すプロパティ id が必要 になります。
でも、わざわざ別で UUID を持たなくても「この構造体の name がユニークなら、それを id に使えば十分」な場合があります。

なので:

として、id の値を name と同じにしているわけです。

💡 例

ここでは id を宣言していませんが、呼び出すと name を返してくれるので Identifiable として使えるわけです。

🎯 ポイント

  • {} の中身は そのプロパティを呼ばれたときに毎回実行される処理
  • var id: String { name } は「id にアクセスされたら name を返す」という計算型プロパティ。
  • return が1行の場合は省略できるので { name } でOK。

つまり、{ name } は「id を呼び出したら name をそのまま返すよ」という省略記法です。

コメント

タイトルとURLをコピーしました