我正在研究Apple的App Development with Swift book,我在Optionals部分遇到了一些问题.
在访问另一个字典以返回满足条件的可选值后,我将无法访问字典.返回的错误是:
在预期返回'Double?'的函数中缺少返回值
var prices = ["Chips": 2.99, "Donuts": 1.89, "Juice": 3.99, "Apple": 0.50, "Banana": 0.25, "Broccoli": 0.99]
var stock = ["Chips": 4, "Donuts": 0, "Juice": 12, "Apple": 6, "Banana": 6, "Broccoli": 3]
func priceCheck(name: String) -> Double? {
let pricefinder = name
if let name = stock[name] {
print(name)
if name > 0 {
if let pricefinder = prices[pricefinder] {
print(pricefinder)
return pricefinder
} else {
return nil
}
}
} else {
return nil
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码我哪里错了?我需要检查产品是否有库存,然后在该条件评估为真时返回其价格.
还有更优雅的解决方案吗?
通过利用Swift为您提供的一些工具,您的功能可以缩短很多.在这里,看看,这是一样的...
func priceCheck(name: String) -> Double? {
guard let stockAmount = stock[name],
stockAmount > 0,
let price = prices[name] else {
return nil
}
return price
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
601 次 |
| 最近记录: |