在Swift中,如何检查数组中是否存在元素? Xcode没有任何建议包含,包括或具有,和快速搜索通过书没有什么。任何想法如何检查这个?我知道有一个方法find返回索引号,但有一个方法返回一个布尔类似ruby的#include?
我需要的示例:
var elements = [1,2,3,4,5] if elements.contains(5) { //do something }
Swift 2,3:
let elements = [1,5] if elements.contains(5) { print("yes") }
contains()是SequenceType
的协议扩展方法(用于可序列元素的序列),而不是全局方法
早期版本。
备注:
>这个contains()方法需要序列元素
采用Equatable协议,比较Andrews’s answer。
>如果序列元素是NSObject子类的实例
那么你必须覆盖isEqual :,参见NSObject subclass in Swift: hash vs hashValue,isEqual vs ==。
>有另一个 – 更一般的 – contains()方法,它不需要元素是等价的,并且使用谓词作为
参数。 Shorthand to test if an object exists in an array for Swift?。
Swift旧版本:
let elements = [1,5] if contains(elements,5) { println("yes") }