我只知道这是否可能有一个对象MyObject数组,而MyObject得到了一个名为isTrue的变量,除了循环整个数组以检查该数组中的所有对象是否为真之外,这样做是否有短时间呢?谢谢。
发布于 2015-05-28 04:36:23
编辑/更新:SWIFT4.2或更高版本
SWIFT4.2介绍了一种名为allSatisfy(_:)的新方法
let bools = [true,false,true,true]
if bools.allSatisfy({$0}) {
print("all true")
} else {
print("contains false") // "contains false\n"
}SWIFT5.2我们也可以使用KeyPath属性
class Object {
let isTrue: Bool
init(_ isTrue: Bool) {
self.isTrue = isTrue
}
}
let obj1 = Object(true)
let obj2 = Object(false)
let obj3 = Object(true)
let objects = [obj1,obj2,obj3]
if objects.allSatisfy(\.isTrue) {
print("all true")
} else {
print("not all true") // "not all true\n"
}发布于 2018-10-05 09:34:55
从Xcode 10和SWIFT4.2开始,您现在可以在谓词中使用allSatisfy(_:):
let conditions = [true, true, true]
if conditions.allSatisfy({$0}) {
// Do stuff
}发布于 2015-12-27 19:53:08
使用reduce函数的纯函数式方法:
let boolArray = [true,true,true,true]
let isAllTrue = boolArray.reduce(true, combine: {$0 && $1}) // truehttps://stackoverflow.com/questions/30497309
复制相似问题