Menu
Coddy logo textTech

if let によるアンラップ

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

オプショナルの中の値に安全にアクセスするために、if letを使用します。これはオプショナルバインディングと呼ばれる手法です。これは、オプショナルに値が含まれているかどうかを確認し、値がある場合はそれを一時的な定数にアンラップします。

var username: String? = "Swift_Dev"

if let name = username {
    print("Welcome, \(name)")
} else {
    print("No username found")
}
// Welcome, Swift_Dev

ここでは、if letusername が値を持っているかどうかをチェックします。値を持っているため、その値は name にアンラップされます。nameif ブロックの中だけに存在します。もし usernamenil であれば、代わりに else ブロックが実行されます。

var age: Int? = nil

if let unwrappedAge = age {
    print("Age is \(unwrappedAge)")
} else {
    print("Age not provided")
}
// 年齢が提供されていません

agenil であるため、条件は失敗し、else ブロックが実行されます。これにより、欠損値を直接使用しようとした場合に発生するクラッシュを防ぐことができます。

challenge icon

チャレンジ

簡単

以下の変数が提供されています:

var nickname: String? = "CoddyLearner"

if let を使用して nickname を安全にアンラップしてください。値が含まれている場合は、Hello, [value]! と出力してください(ここで [value] はアンラップされたニックネームです)。もし nil の場合は、No nickname set と出力してください。

チートシート

if let(オプショナルバインディング)を使用して、オプショナルを安全にアンラップし、その値にアクセスします:

var username: String? = "Swift_Dev"

if let name = username {
    print("Welcome, \(name)")
} else {
    print("No username found")
}
// Welcome, Swift_Dev

オプショナルに値が含まれている場合、その値はifブロック内でのみ存在する一時的な定数にアンラップされます。オプショナルがnilの場合、elseブロックが実行されます:

var age: Int? = nil

if let unwrappedAge = age {
    print("Age is \(unwrappedAge)")
} else {
    print("Age not provided")
}
// Age not provided

自分で試してみよう

var nickname: String? = "CoddyLearner"

// TODO: 以下にコードを書いてください
// if let を使用して nickname を安全にアンラップしてください
// 値が含まれている場合は、"Hello, [value]!" と出力してください
// nil の場合は、"No nickname set" と出力してください
quiz icon腕試し

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

基礎のすべてのレッスン