if let によるアンラップ
CoddyのSwiftジャーニー「基礎」セクションの一部。レッスン 12/86。
オプショナルの内部にある値に安全にアクセスするには、if letを使用します。これはoptional bindingと呼ばれる手法です。オプショナルに値が含まれているかを確認し、含まれていれば、一時的な定数にアンラップします。
var username: String? = "Swift_Dev"
if let name = username {
print("Welcome, \(name)")
} else {
print("No username found")
}
// ようこそ、Swift_Devここでは、if let は username に値があるかどうかを確認します。値があるため、その値は name にアンラップされ、if ブロック内でのみ存在します。username が nil であれば、代わりに else ブロックが実行されます。
var age: Int? = nil
if let unwrappedAge = age {
print("Age is \(unwrappedAge)")
} else {
print("Age not provided")
}
// 年齢が提供されていませんage は nil なので、条件は失敗し、else ブロックが実行されます。これにより、欠落した値を直接使用しようとした場合に発生するクラッシュを防ぎます。
チャレンジ
簡単次の変数が与えられています:
var nickname: String? = "CoddyLearner"if letを使用してnicknameを安全にアンラップします。値が含まれている場合は、アンラップされたニックネームを[value]として、Hello, [value]!を出力します。nilの場合は、No nickname setを出力します。
自分で試してみよう
var nickname: String? = "CoddyLearner"
// TODO: 以下にコードを書いてください
// if let を使って nickname を安全にアンラップする
// 値が含まれている場合は、"Hello, [value]!" を出力する
// nil の場合は、"No nickname set" を出力するこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Swiftプレイグラウンド