Menu
Coddy logo textTech

Nil合体演算子

CoddyのSwiftジャーニー「基礎」セクションの一部。レッスン 14/86。

オプショナルがnilの場合に、複数行のコードを書かずにデフォルト値を提供したいことがあります。Swiftのnil合体演算子??)はまさにそれを行います。値がある場合はオプショナルをアンラップし、nilの場合はデフォルト値を返します。

let nickname: String? = nil
let displayName = nickname ?? "Guest"
print(displayName) // Guest

nicknamenil なので、演算子は代わりに "Guest" を返します。nickname に値が入っていた場合は、その値が使用されます。

let username: String? = "SwiftCoder"
let greeting = username ?? "Anonymous"
print(greeting) // SwiftCoder

nil合体演算子は、フォールバック値が必要な1行のコードに最適です。単にnilをdefaultに置き換えたい場合、if let文を書くよりも簡潔です。結果は常に非optional値になるため、さらにアンラップせずにそのまま使用できます。

challenge icon

チャレンジ

簡単
オプショナルな usernamedefaultName を受け取り、nil 合体演算子を使用して適切な表示名を返す関数 getDisplayName を作成してください。

username が空(空の文字列 "" で表される)の場合は、nil として扱い、defaultName を返してください。それ以外の場合は、username を返してください。

パラメーター:

  • username (String): ユーザーの名前(空の文字列は nil を表します)
  • defaultName (String): フォールバックとして使用する名前

戻り値: username が空でない場合は username、それ以外の場合は defaultName。

ヒント: 関数内で、username を String? 型の変数に格納し、username が "" と等しい場合は、単純な if を使ってその変数を nil に設定してください。その後、?? を使ってフォールバックを指定します。

自分で試してみよう

func getDisplayName(username: String, defaultName: String) -> String {
    // ここにコードを書いてください
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Swiftプレイグラウンド