日14:Swiftuiの100日-オプション
6117 ワード
オプション、NIL合体、チェックポイント9
https://www.hackingwithswift.com/100/swiftui/14
オプション
オプションは値の不在を扱います.オプションは「価値がある」または「価値が全くない」と言います
nil
)"var username: String? = nil
var password: String?
if let unwrappedName = username {
print("We got a user: \(unwrappedName)")
} else {
print("The optional was empty.")
}
レットアンドガード
The
if let
オプション値を展開し、値があるかどうかを調べ、コードを実行します.The guard let
一方、オプションが値を持たない場合は、いくつかのコードを実行します.var myVar: Int? = 3
if let unwrapped = myVar {
print("Run if myVar has a value inside")
}
guard let unwrapped = myVar else {
print("Run if myVar doesn't have a value inside")
}
あなたが使うならばguard
関数ではreturn
を返します.func printSquare(of number: Int?) {
guard let number = number else {
print("Missing input")
return
}
print("\(number) x \(number) is \(number * number)")
}
printSquare(of: nil)
printSquare(of: 2)
ニール合体
nil coalescingはオプションをアンラップし、オプションが空の場合はデフォルト値を提供します.
let captains = [
"Enterprise": "Picard",
"Voyager": "Janeway",
"Defiant": "Sisko"
]
let new = captains["Serenity"] ?? "N/A"
オプション連鎖
オプションの連鎖は、オプション内でオプションを読み込むための簡単な構文です.これは、道に沿った何かがオプションであるとき、連鎖したプロパティアクセスを行う良い方法です
let names = ["Arya", "Bran", "Robb", "Sansa"]
let chosen = names.randomElement()?.uppercased() ?? "No one"
print("Next in line: \(chosen)")
チェックポイント9
整数の任意の配列を受け入れる関数を書き込み、ランダムに1を返します.配列が見つからないか空であれば、範囲1から100までの乱数を返します.
ソリューション
Reference
この問題について(日14:Swiftuiの100日-オプション), 我々は、より多くの情報をここで見つけました https://dev.to/johnkevinlosito/day-14-100-days-of-swiftui-8p1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol