Раньше в Swift 2.2 я мог:
extension _ArrayType where Generator.Element == Bool{
var allTrue : Bool{
return !self.contains(false)
}
}
который продолжается [Bool]
с помощью .allTrue
. Например.
[true, true, false].allTrue == false
Но в Swift 3.0 я получаю эту ошибку:
необъявленный тип
_ArrayType
Поэтому я попытался переключить его на Array
и используя новое ключевое слово Iterator
extension Array where Iterator.Element == Bool
var allTrue : Bool{
return !self.contains(false)
}
}
Но у меня другая ошибка, жалующаяся на то, что я заставляю элемент быть не общим
Требование к одному типу делает общий параметр "Элемент" не общим
Я также пробовал решения на этом 2-летнем посту, но безрезультатно.
Итак, как можно расширить массивы примитивных типов, таких как Bool в Swift 3?