Utilice el operador lógico como cierre combinado en reducir
Estoy tratando de reducir una serie deBool
s aplicando el operador lógicoO (||
) usando el siguiente código, sin embargo, aparece un error:
func reduceBools(values: [Bool]) -> Bool {
return values.reduce(false, combine: ||)
}
Referencia ambigua al miembro '||'
Análogamente para enteros, el código funciona a las mil maravillas.
func reduceInts(values: [Int]) -> Int {
return values.reduce(0, combine: +)
}
Pude hacerlo funcionar agregando un||
función (código a continuación) o usando un{ $0 || $1 }
cierre pero no me gustan estos enfoques y preferiría simplemente pasar al operador.
func ||(lhs: Bool, rhs: Bool) -> Bool {
return lhs || rhs
}
Lo mismo sucede con lo lógico.Y (&&
) operador.
¿Cómo puedo hacer que funcione sin usar el truco anterior?