nil合体演算子(??)

Swiftの**nil合体演算子(??)**は、オプショナル型の値がnilであった場合に、代わりにデフォルト値を提供するための演算子です。これは、オプショナルのアンラップとデフォルト値の指定を簡潔に記述できる手段としてよく使われます。


基本構文

swift
let 結果 = オプショナル値 ?? デフォルト値
  • オプショナル値:オプショナル型の変数や式

  • デフォルト値オプショナル値nilだった場合に使用される値

  • 結果:オプショナルをアンラップした非オプショナル型の値


使用例

swift
let optionalName: String? = nil let name = optionalName ?? "デフォルト名" print(name) // 出力: デフォルト名

この例では、optionalNamenilであるため、"デフォルト名"が代わりにnameに代入されます。


nilでない場合

swift
let optionalAge: Int? = 30 let age = optionalAge ?? 18 print(age) // 出力: 30

この場合、optionalAgenilでないため、その値30ageに代入されます。??の右辺(18)は評価されません。


応用例(関数内)

swift
func greet(name: String?) { let finalName = name ?? "ゲスト" print("こんにちは、\(finalName)さん") } greet(name: "山田") // 出力: こんにちは、山田さん greet(name: nil) // 出力: こんにちは、ゲストさん

注意点

  • ??演算子はオプショナルを安全にアンラップする手段の1つです。

  • 右辺のデフォルト値は、オプショナル型ではなく、非オプショナル型である必要があります。


まとめ

特徴 内容
用途 オプショナルがnilなら代わりの値を使用
結果は非オプショナル型になる
書き方 オプショナル値 ?? デフォルト値
評価の仕方 オプショナル値nilでないときは右辺は評価されない

生成日:2025/05/04