オプショナル型

swiftの重要な言語仕様の代表格であるオプショナル型

swiftは変数にnil(null)を代入することが出来ませんがオプショナル型として宣言することで、代入ができるようになります

1. 宣言方法

宣言時に?をつけることでオプショナル変数となる

var str: String?
str = nil

2. オプショナルバインディング

以下の用に記述することでnilチェックが行える

var str: String? = "hoge"
if let s = str {
//処理
}

3. ??nil結合演算子

??はその値がnilでなければその値を、nilのときには指定した値を代入出来る

var n: Int?
let m = n ?? 1 //mには1が代入

n = 5
let m = n ?? 1 //mには5が代入

4. アンラップ

オプショナル型で関数の引数の受け渡しなどする場合はnilでないことを示すためにアンラップする必要がある

アンラップの方法はオプショナル変数の後ろに!をつける

オプショナルバインディングを使用すると宣言の必要がない

var n:Int? = 1
println("10倍は\((n!) * 10)")


var m:Int?
println("10倍は\((m!) * 10)")//これはエラー

5. 暗黙的なオプショナル型

宣言時に!をつけることで暗黙なオプショナル型となる。これはアンラップとは別物であるので注意

わざわざ毎回アンラップする必要のないオプショナル型である。もちろんnilの場合にはエラーがおこるので注意が必要

var str: String!