Я пытаюсь уменьшить массив 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
}
То же самое происходит для логического оператора И (&&).
Как я могу заставить его работать без использования взлома выше?