什么是最接近Python的Swift中的任何/所有函数?

时间:2018-04-12 18:38:15

标签: swift

在Python中,内置"任何"和#34;所有"如果iterable中的任何元素为true,或者iff中的所有元素都为true,则函数返回true。例如:

any([False, False, False]) # evaluates to False
any([False, False, True]) # evaluates to True
all([True, True, False]) # evaluates to False
all([True, True, True]) # evaluates to True

Swift中有这样的东西吗?如果没有,那么实现相同结果的最简洁方法是什么?我想出的最好的是:

elements.reduce(true, {x, y in x && y}) // for "all"
elements.reduce(false, {x, y in x || y}) // for "any"

1 个答案:

答案 0 :(得分:3)

let any = elements.contains(true)
let all = !elements.contains(false)

Swift使用contains(where:)扩展它,您可以使用它来评估任何谓词。