Swift で Optional 型をアンラップする方法
iOS Swift
Published: 2019-02-10

目的

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)!)

参考