慣れてないと間違いそうになるSwiftのOptionalまとめ
Optinal Type / Optional Value・・・変数がnilを許容できるかどうかを設定できる
・通常
通常はnilを代入できない
var hoge2:String = nil // NG
var fuga:String = nil // NG
・オプショナル
変数の宣言時に?を付ける
var hoge:String? = nil // OK
暗黙的なオプショナル
var fuga:String! = nil // OK
上記の「?」と「!」の違いは・・・通常のOptionalは「?」を使うが、引数に渡す際にnilでないことを明示的に示す為
アンラップ(「!」を使用する)してやる必要がある。
例)
var num :Int? = 300
println(“\(num!)”)
※上記の「!」と暗黙的なオプショナルの「!」は異なる
暗黙的なオプショナルは使用時にアンラップする必要がない 。
例)
var num :Int! = 300
println(“\(num)”)
・オプショナルバインディング
Optionalはif文の条件で使用することができる。
例)
var num :Int? if let fix = num { println(“確定”) } else { println(“nil”) }num がnilだとprintln(“nil”)、値が入っていたらprintln(“確定”)が実行される
・nil結合演算
Optionalの値がnilの場合に特定の値を指定できる。
例)
var num: Int? let fix = num ?? 99 // 99が設定される var str: String? = “Hoge" println(str ?? “Fuga") // “Hoge"が出力される
・捕捉 「is」 と 「as」
isはインスタンスのチェックを行う(javaのinstanceofみたいなもの)
asはダウンキャストを行う
as? はダウンキャストに失敗したらnilを返す
0 件のコメント:
コメントを投稿