こんにちは トクハラです。

今日は ?? 演算子についてまとめます。

ちなみに中値演算子と言います。
左辺が値を持っていなければ、右辺を代入します。
公式サイトリファレンス
まず実際のソースを見てみましょう。


#datperson.jushoがあればjushoに代入,nillなら""空白を代入
let jusho = datPerson.jusho ?? ""

ここはdatPerson.jushoがオプショナル型なので、nilが入っているかもしれない。
だから??でチェックします。

強制アンラップとは

強制アンラップというのがあります。
エイッと、中身を開いてしまうわけですね。
もともとラップとうのは、包み込むという意味ですので、
アンラップは逆の意味になります。

!を利用します

上記で言うなら

let jusho = datPerson.jusho!

これでもできます。できるとうのは、文法エラーにならないだけです。
だから、datPerson.jushoがnillだったら,落ちてしまいます。

怖いですね。
値が入っていることが確実なものだけ利用します。
@IBOutletなどで使っていますね。
あれは、StoryBoardで接続しているので、インスタンスが存在することが担保されているからです。

??演算子は、DB等から値を取り出すときによく利用します。

Swiftはオプショナルがあり、安全な設計となっていますが、その取り出し方法は、いろいろな方法があります。
またまとめていきますので、ご要望があれば、下記にお願いします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です