インスタンス変数初期化の `={}()` の記法は JavaScriptでいうところの無名関数の即時実行ですか?
class Foo {
var name = ""
}
class Hoge {
let foo: Foo = {
let foo = Foo()
foo.name = "フー"
return foo
}()
}
Hoge().foo.name
上記のfoo
インスタンス変数のようにいろいろな値を設定したオブジェクトを持ちたい場合
= {
// いろいろ設定してreturn
}()
という書き方を見ます。これはJavaScriptでいうところの無名関数の即時実行と同じと考えてよいのでしょうか?
https://docs.swift.org/swift-book/LanguageGuide/Properties.html
にはこの記法が載っておらず、どういった文法なのかわからずにいます。