gpt4 book ai didi

swift - "??"在 : let x = y ? 的上下文中代表什么? "Candy bar"

转载 作者:行者123 更新时间:2023-11-28 09:34:25 25 4
gpt4 key购买 nike

我是 Swift 的新手。有人可以告诉我什么“??”代表什么,它在上下文中的作用是什么

let snackName = favoriteSnacks[person] ?? "Candy bar"

我在下面包含了完整的代码:

struct Item{
var price: Int
var count: Int
}

class VendingMachine {
var inventory = [
"Candy bar": Item(price: 12, count: 7),
"Chips": Item(price: 10, count: 4),
"Pretzels": Item(price: 7, count: 11)
]
var coinsDeposited = 0
func dispenseSnack(snack: String){
print("dispensing \(snack)")
}

func vend(itemNamed name: String) throws {
guard var item = inventory[name] else {
throw VendingMachineError.InvalidSelection
}

guard item.count > 0 else {
throw VendingMachineError.OutOfStock
}

guard item.price <= coinsDeposited else {
throw VendingMachineError.InsufficientFunds(coinsNeeded: item.price - coinsDeposited)
}

coinsDeposited -= item.price
--item.count
inventory[name] = item
dispenseSnack(name)
}
}

let favoriteSnacks = [
"Alice": "Chips",
"Bob": "Licorice",
"Eve": "Pretzels",
]

func buyFavoriteSnack(person: String, vendingMachine: VendingMachine) throws {
let snackName = favoriteSnacks[person] ?? "Candy bar"
try vendingMachine.vend(itemNamed: snackName)
}

最佳答案

用于校验nil,如果你的值为nil,则赋默认值。

let favoriteSnacks = [
"Alice": "Chips",
"Bob": "Licorice",
"Eve": "Pretzels",
]

从你的代码,

suppose person = "Eve"

let snackName = favoriteSnacks["Eve"] ?? "Candy bar"

它将首先尝试从字典中查找值,即 favoriteSnacks["Eve"] 将为您提供值 "Pretzels"

因此它将值 Pretzels 赋给 snackName 变量。

suppose person = "Allen"

let snackName = favoriteSnacks["Allen"] ?? "Candy bar"

它将首先尝试从字典中查找值,即 favoriteSnacks["Allen"] 将为您提供值 nil

在这种情况下,它会将默认值 "Candy bar" 分配给您的变量 snackName

关于swift - "??"在 : let x = y ? 的上下文中代表什么? "Candy bar",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35331397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com