var a: Int = { 10 + 20 }() // (1)
var b: Int { return 10 + 20 } // (2)

println(a)
println(b)

上記コードの場合、変数a, bともに30と表示されます。

(1)はclosureの結果がaに格納されていると理解できるのですが、(2)でbに値が入るのが理解できません。

(2)もclosureなのでしょうか?
なぜ「=」がないのでしょうか?
なぜ式の末尾に「()」がないのでしょうか?

ご教授お願い致します。

また、参考になるサイトがあれば教えて下さい。