目的
Swift で Optional 型をアンラップする方法をまとめました。
方法1. Optional Binding
var str: String? = "Hello, playground"
var strNil: String? = nil
// nil の場合は空文字を返却する
func message(argStr:String?) -> String {
if let unwrappedStr = argStr {
return unwrappedStr.uppercased()
}
return ""
}
print(message(argStr:str))
print(message(argStr:strNil))
方法2. Optional Chaining
var str: String? = "Hello, playground"
var strNil: String? = nil
print(str?.uppercased())
print(strNil?.uppercased())
方法3. Forced Unwrapping
強制的にオプショナル型をアンラップします。
これを使用するときは、nil ではないことを保証しないとエラーが発生します。
print(str!.uppercased())
// 注意!!! エラーが出る
// Fatal error: Unexpectedly found nil while unwrapping an Optional value
// print(strNil!.uppercased())
方法4 ImplicitlyUnwrappedOptional
var implicitlyStr: String! = "Hello, playground"
var implicitlyStrNil: String! = nil
print(implicitlyStr.uppercased())
// 注意!!! エラーが出る
// Fatal error: Unexpectedly found nil while unwrapping an Optional value
// print(Int(implicitlyStrNil)!)