最大查找器不工作
Maximum finder not working
我有这个代码:
func doSomething(_ closure: ([Double]?, Double?) -> Double?) {
closure([1,2,3,4], 8)
}
print(doSomething({ return [=10=]?.max() ?? }))
我需要帮助理解为什么它不 return 任何东西,什么时候应该 return 数组中的最大值,或第二个参数。
doSomething
是一个 void 函数。采用(([Double]?, Double?) -> Double?)
类型的参数并不意味着函数本身应该returnsDouble?
虽然这个功能对我来说很奇怪,但我认为你想要实现的是:
func doSomething(_ closure: ([Double]?, Double?) -> Double?) -> Double? {
return closure([1,2,3,4], 8)
}
此编辑后,输出应为:
print(doSomething { return [=11=]?.max() ?? }) // Optional(4.0)
对于这种情况,我建议安全地解开它,你可能想要 "Optional Binding" 它:
if let value = doSomething({ return [=12=]?.max() ?? }) {
print(value) // 4.0
}
我有这个代码:
func doSomething(_ closure: ([Double]?, Double?) -> Double?) {
closure([1,2,3,4], 8)
}
print(doSomething({ return [=10=]?.max() ?? }))
我需要帮助理解为什么它不 return 任何东西,什么时候应该 return 数组中的最大值,或第二个参数。
doSomething
是一个 void 函数。采用(([Double]?, Double?) -> Double?)
类型的参数并不意味着函数本身应该returnsDouble?
虽然这个功能对我来说很奇怪,但我认为你想要实现的是:
func doSomething(_ closure: ([Double]?, Double?) -> Double?) -> Double? {
return closure([1,2,3,4], 8)
}
此编辑后,输出应为:
print(doSomething { return [=11=]?.max() ?? }) // Optional(4.0)
对于这种情况,我建议安全地解开它,你可能想要 "Optional Binding" 它:
if let value = doSomething({ return [=12=]?.max() ?? }) {
print(value) // 4.0
}