English UI is enabled. Article bodies are currently written in Japanese. English summaries and navigation are available while full article translations are prepared.

Swift Optional エラーの解決方法

Swift Optional エラーの解決方法

導入

Swiftを書いていると Value of optional type 'String?' must be unwrapped といったエラーに出くわすことがよくあります。このエラーはSwiftのOptional型の仕組みに起因しており、正しく理解することで簡単に解決できます。

詳細解説

Optionalとは

Optional型とは「値があるかもしれないし、ないかもしれない(nil)」を表す型です。

var name: String? = nil  // Optional<String>
var name2: String = "Taro"  // 非Optional

アンラップの方法

1. if let(安全なアンラップ)

if let name = name {
    print("名前: \(name)")
} else {
    print("名前がありません")
}

2. guard let(早期リターン)

func greet(name: String?) {
    guard let name = name else {
        print("名前がありません")
        return
    }
    print("こんにちは、\(name)さん")
}

3. nil合体演算子(??)

let displayName = name ?? "ゲスト"

強制アンラップ(!)は避ける

let name = optionalName!  // nilのときクラッシュする

!による強制アンラップはnilのときにクラッシュするため、本番コードでは基本的に使わないようにしましょう。

まとめ

  • Optionalはnilの可能性を型で表現する仕組み
  • if let / guard let で安全にアンラップする
  • ?? でデフォルト値を設定できる
  • 強制アンラップ(!)は極力避ける
← 記事一覧に戻る