Swift中有没有一种方法可以检查任何一项是否满足特定条件?
例如,给定一个整数数组,我想看看它是否包含偶数(此代码将不起作用):
[1, 2, 3].any { $0 % 2 == 0 } // true
[1, 3, 5].any { $0 % 2 == 0 } // false
Run Code Online (Sandbox Code Playgroud)
我目前正在使用以下方法:
let any = [1, 3, 5].filter { $0 % 2 == 0 }.count > 0
Run Code Online (Sandbox Code Playgroud)
我认为这不是很好。
这有点冗长。
将为数组中的所有项目调用filter闭包参数,这是不必要的。
有更好的方法吗?
Leo*_*bus 16
您可以使用该方法contains来完成您想要的。它比 filter 更好,因为它不需要数组元素的整个迭代:
let numbers = [1, 2, 3]
if numbers.contains(where: { $0 % 2 == 0 }) {
print(true)
}
Run Code Online (Sandbox Code Playgroud)
或Xcode 10.2+ https://developer.apple.com/documentation/swift/int/3127688-ismultiple
if numbers.contains(where: { $0.isMultiple(of: 2) }) {
print(true)
}
Run Code Online (Sandbox Code Playgroud)
为Swift 5更新了正确答案:
[1, 2, 3].contains(where: { $0 % 2 == 0 })
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
797 次 |
| 最近记录: |