【发布时间】:2016-09-22 01:02:48
【问题描述】:
以前在 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 years old post 中的解决方案,但无济于事。
那么如何在 Swift 3 中扩展原始类型的数组,如 Bool 呢?
【问题讨论】:
标签: arrays swift extension-methods swift3