我尝试使用以下代码通过逻辑运算符OR (||
) 来缩减一个 Bool
类型的数组,但是我遇到了一个错误:
func reduceBools(values: [Bool]) -> Bool {
return values.reduce(false, combine: ||)
}
成员' || '的引用不明确
类比于整数,该代码可以完美运行。
func reduceInts(values: [Int]) -> Int {
return values.reduce(0, combine: +)
}
我通过添加一个||
函数(下面是代码)或使用{$0 || $1}
闭包使其工作,但我不喜欢这些方法,我宁愿直接传递操作符。
func ||(lhs: Bool, rhs: Bool) -> Bool {
return lhs || rhs
}
逻辑AND(&&
)运算符也是同样的情况。
我如何在不使用上述hack的情况下使其起作用?
||
和&&
的 "自动闭包" 参数导致的一个错误/限制。请参考 https://dev59.com/MYjca4cB1Zd3GeqPrhYq 以及以下评论。 - Martin R