質問: { 10 + 20 }() // (1) var b: Int { return 10 + 20 } // (2) println(a) println(b) ``` 上記コードの場合、変数a, bともに30と表示されます。 (1)はclosureの結果がaに格納されていると理解できるのですが、(2)でbに値が入るのが理解できません。 (2)もclosureなのでしょうか? なぜ「=」がないのでしょうか? なぜ式の末尾に「()」がないのでしょうか? ご教授お願い致します。 また、参考になるサイトがあれば教えて下さい。
回答: (2)は、**Computed Property**(計算プロパティ)です。省略せず定義を記述すると、 ``` var b: Int { get { return 10 + 20 } } ``` Computed Propertyの定義は、基本Getter(`get {}`)とSetter(`set() {}`)がセットになりますが、Setterは省略可能で、省略した場合、ご質問にあるように、 ``` var b: Int { return 10 + 20 } ``` という省略構文が使えます。 > > また、参考になるサイトがあれば教えて下さい。 > > > Apple Developer The Swift Programming Language - Properties