ページ

2015年6月23日火曜日

SwiftのOptionalまとめ

慣れてないと間違いそうになる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 件のコメント:

コメントを投稿