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