swift3中的数组扩展

swift3中的数组扩展,swift3,Swift3,如果Bool数组中的元素都为true,那么下面的filter方法将返回true print([false, true].filter({!$0}).isEmpty) // yields false print([true, true].filter({!$0}).isEmpty) // yields true 如何在Swift 3中的数组上创建一个扩展方法,使我可以这样表示它: [false, true].allElementsTrue() 这应该回答您的问题: extension Col

如果Bool数组中的元素都为true,那么下面的filter方法将返回true

print([false, true].filter({!$0}).isEmpty) // yields false
print([true, true].filter({!$0}).isEmpty)  // yields true
如何在Swift 3中的数组上创建一个扩展方法,使我可以这样表示它:

[false, true].allElementsTrue()

这应该回答您的问题:

extension Collection where Iterator.Element == Bool {

    var allElementsTrue: Bool {
        return self.filter({!$0}).isEmpty
    }

}

但我更喜欢在没有参数的情况下使用计算属性

注意:作为替代,您也可以
返回!self.contains(false)
以更有效地获得相同的结果(短路)

extension Collection where Iterator.Element == Bool {

    func allElementsTrue() -> Bool {
        return self.filter({!$0}).isEmpty
    }

}