[解決済み] Swift における演算子
2022-03-02 17:56:35
質問
The Swift Programming Language"の本(599ページ)で、私はこのコードスニペットに出会い、ちょっと混乱してしまいました。それは次のようになりました。
func buyFavoriteSnack(person:String) throws {
let snackName = favoriteSnacks[person] ?? "Candy Bar"
try vend(itemName:snackName)
}
その解説は
buyFavoriteSnack(_:)関数は、与えられた人の好きなお菓子を調べて、それを買ってあげようとする関数です。もし、好きなお菓子がなければ、お菓子を買おうとします。もし相手が...
この説明は、与えられたコードの中の"?"演算子にどのように対応させることができますか。私たち自身のコードでこの構文をいつ使うべきですか/使えますか?
どのように解決するのですか?
nil合体演算子(デフォルト演算子とも呼ばれる)です。
a ?? b
の値です。
a
(すなわち
a!
) でない限り
a
は
nil
となり、その場合
b
. すなわち、もし
favouriteSnacks[person]
が見つからない場合、代入
"Candy Bar"
を使用します。
EDIT 技術的には次のように解釈できる。(以下、Badar Al-Rasheed氏の回答より)
let something = a != nil ? a! : b
関連
-
[解決済み】リンカーコマンドが終了コード1で失敗(起動を確認するには-vを使用)、Xcode 8、Swift 3
-
[解決済み] dispatch_after - GCD in Swift?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] Swiftで#pragmaマーク?
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] Swiftでindexとelementでループを反復させる方法
-
[解決済み] SwiftでStringを配列に分割する?
-
[解決済み] Swiftの@selector()?
-
[解決済み] Swiftを使用してアプリのバージョンとビルド番号を取得するにはどうすればよいですか?
-
[解決済み] NSNotificationCenterのaddObserver in Swift
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] CFNetwork SSLHandshakeに失敗しました(-9824) NSURLSession/NSURLConnection HTTPのロードに失敗しました(kCFStreamErrorDomainSSL, -9824)
-
[解決済み] EXC_CORPSE_NOTIFY シンボルのクラッシュが発生しました、追跡するには?
-
[解決済み] 「シミュレータで実行すると、「インストールされているプロビジョニングプロファイルが、インストールされているiOS署名アイデンティティと一致しません。
-
[解決済み] 基本的なUIButtonをプログラムで作成するには?
-
[解決済み] キャッチできない例外 'NSInvalidArgumentException', reason: '-[_.AppDelegate add:]: unrecognized selector' により、アプリを終了する。
-
[解決済み] Objective-C ブロックパラメータ 発行 このブロック宣言はプロトタイプではありません
-
[解決済み] iOS 9 : ユニバーサルアプリの警告「アプリがフルスクリーンを必要としない限り、すべてのインターフェイスの向きをサポートする必要があります」。
-
[解決済み] Objective C - 値で渡す、参照で渡す
-
[解決済み] swiftのダブルクエスチョンマークの目的は何ですか[重複]。
-
[解決済み] swiftの"? "の意味は何ですか?[重複している]。