Avatar
なるほど
10:14 AM
Swiftのグローバル・Static変数のlazy化は
10:15 AM
あくまで最適化の範疇で勝手にやっていることであって
10:15 AM
メンタルモデルとしては忘れて良いもので
10:15 AM
という意味では、 Class.value = 初期値
10:15 AM
実行されていることになるんじゃないですかね?
10:16 AM
だから、 Class.value への最初のアクセスが発生した時点で、 初期値の代入処理が実行、 (この場合 preconditionfailure) その後で 実際のアクセス(この場合1の代入 )
10:17 AM
lazyをつけた場合は、これは、readするときに実行されるものって決まってるので、若干意味が違うと思う
10:17 AM
意味が違うから書き分ける事に合理性があるのに、already lazyってエラーになっていることがおかしいように思う。