以前はiOS開発ではObjective-Cを使ってましたが、最近はもうSwiftが主流になってきているとのこと。
そこでいっちょSwiftやってみるかと思って試しにiOSアプリを作ってみたりしました。
長いことクライアント開発から離れていたので、感覚を取り戻せるか心配してましたが、意外とObjective-Cでの経験を覚えていたので
そこまで苦しい思いはしなかったです。とはいえ、全てすんなり行ったわけでもなく、ある程度は勉強が必要でした。
そこで今回は、Swiftの入門というスタンスで、オプショナル型とアンラップについて、簡単にメモします
一言でいうと、「nil状態を許容する型」のこと。
nilを許容するというのがどういうことか。そもそもswiftという言語は基本的にnilを許容しない仕様になっているらしいです。
nil状態の変数が存在すると、アプリの異常終了に繋がりかねず、これを避けたいという意向がこのようなnil禁止の思想に繋がっているっぽいですね。
Xcodeでプログラムを書いていても、基本nilではない前提でコードチェックするので、nilの変数があると怒られるんです。
オプショナル型を使うことで、Xcodeがnilがありうるものと認識し、怒らなくなるというわけです。
オプショナルを使うケースとしては、IBOutletで紐付けを行うときに使うケースがあります。
@IBOutlet var btn:UIButton!
オプショナル型を使うときの宣言方法は、大きく2つあります。「!」をつけるパターンと「?」をつけるパターンです。
var a:Int?
var str:String!
var str:String? = "abcd"
=> Optional("abcd")
「?」をつけてオプショナル型を宣言した場合は、「!」による明示的なアンラップが必要です。
var a:Int? = 2 # Optional(2) このままでは足し算はできない
var b:Int = 1 + a! # !をつけてアンラップし、2を取り出す
var a:Int! = 2 # Optional(2)
var b:Int = 1 + a # 内部で自動でアンラップしてくれる
というわけで、オプショナル型とアンラップについて、簡単なメモでした。
今回はどういうものかをざっと書いただけで、どこでどのように使うかまでは書いてないですが、
少なくとも使うケースが生じた時にこのメモが役に立てばいいなと思いますね。
ではでは〜