如果Bool数组中的元素都为true,则以下filter方法将返回true。
print([false, true].filter({!$0}).isEmpty) // yields false
print([true, true].filter({!$0}).isEmpty) // yields true
如何在Swift 3中的Array上创建一个扩展方法,允许我这样表示它:
[false, true].allElementsTrue()
答案 0 :(得分:1)
这应该回答你的问题:
view::join
或
extension Collection where Iterator.Element == Bool {
var allElementsTrue: Bool {
return self.filter({!$0}).isEmpty
}
}
但是,如果没有要提供的参数,我更喜欢使用计算属性。
注意:作为替代方案,您也可以extension Collection where Iterator.Element == Bool {
func allElementsTrue() -> Bool {
return self.filter({!$0}).isEmpty
}
}
更有效地获得相同的结果(短路)。