2017年4月5日水曜日

optionalとアンラップ

- nilを許可する場合はOptional型として "?"をつける
- 使用するときはアンラップ < "!"で強制アンラップ
  let unlap = optionalString! 
- オプショナルバインディングで安全にアンラップ
  if let opt = optionalString {   // オプショナルバインディングでfalse
      print("アンラップしました -> " + opt)
  }

// optionalとは??
var nonOptionalString:String = "hello"  // optionalじゃなくString型
print(nonOptionalString)

nonOptionalString = "hoge"
print(nonOptionalString)

// nonOptionalString = nil     // ここでエラー "nil cannot be assigned to type 'String'
// print(nonOptionalString)     // nilを入れることが出来ない為

// optional型で宣言
var optionalString:String? = "hello"    // ?をつけるとOptional型になる
print(optionalString)           // Optinal("hello")と表示される

optionalString = nil        // nil代入もOK
print(optionalString)       // "nil"と表示される

if let opt = optionalString {   // オプショナルバインディングでfalse
    print("アンラップしました -> " + opt)
} else {
    print("nilが入っている")  // こっちが表示される
}

optionalString = "hoge"
if let opt = optionalString {   // オプショナルバインディングでアンラップ
    print("アンラップしました -> " + opt)    // アンラップされたこっちが表示される
} else {
    print("nilが入っている")
}

0 件のコメント:

コメントを投稿