Use o operador lógico como fechamento combinado em reduzir
Estou tentando reduzir uma matriz deBool
s aplicando o operador lógicoOU (||
) usando o código a seguir, no entanto, recebo um erro:
func reduceBools(values: [Bool]) -> Bool {
return values.reduce(false, combine: ||)
}
Referência ambígua ao membro '||'
Analogamente para números inteiros, o código funciona como um encanto.
func reduceInts(values: [Int]) -> Int {
return values.reduce(0, combine: +)
}
Consegui fazê-lo funcionar adicionando um||
(código abaixo) ou usando um{ $0 || $1 }
fechamento, mas não gosto dessas abordagens e preferiria simplesmente passar o operador.
func ||(lhs: Bool, rhs: Bool) -> Bool {
return lhs || rhs
}
O mesmo acontece com o lógicoE (&&
) operador.
Como posso fazê-lo funcionar sem usar o hack acima?