茶漬けの技術メモ

Golang, Rubyで趣味開発します。テックニュース書いたり。ガジェット触ったり。

Variable/Constant '***' passed by reference before being initialized エラーが出た時の対処法

Swift を書いていて、宣言した配列に要素を追加しようと思ったらエラーが出た。

f:id:biwako_no_otyazuke:20161204112459p:plain

こんな感じに


Swift の配列には初期化した状態としてない状態がある

エラー文を見てみると、

Variable/Constant '***' passed by reference before being initialized

初期化前に参照されてるぞとある、

ここで大事なのが、Swift の配列には初期化した状態初期化されてない状態がある。

なので下の画像のように初期化してから要素を追加すると、エラーは消える。

f:id:biwako_no_otyazuke:20161204113940p:plain


文字列や辞書では?

文字列では初期化せずに追加することが可能。
f:id:biwako_no_otyazuke:20161204113514p:plain


辞書は配列と同様に初期化しないとエラーが出る。
f:id:biwako_no_otyazuke:20161204113559p:plain

初期化してやるとエラーは消える。
f:id:biwako_no_otyazuke:20161204113633p:plain