获取更短版本的for循环?

Pet*_*r71 1 arrays string optimization swift

我正在使用Swift 3.0并使用此代码搜索数组中的项目作为String类型的扩展:

extension String {
    func equal(compareToArray : [String]) -> Bool {
        for s in compareToArray {
            if self == s {
                return true
            }
        }
        return false
    }
}
Run Code Online (Sandbox Code Playgroud)

它运行正常,但我的问题是,我可以做得更好(更短/更简单或更快)?

好的,另一个类似的样本:

func contains(compareToArray : [String]) -> Bool {
    for s in compareToArray {
        if self.contains(s) {
            return true
        }
    }
    return false
}
Run Code Online (Sandbox Code Playgroud)

vad*_*ian 6

更短,更简单,更快捷

let compareToArray = ["foo", "bar", "baz"]
compareToArray.contains("bar")
Run Code Online (Sandbox Code Playgroud)

编辑:

根据你的第二个例子

!compareToArray.filter {$ 0.contains("oo")}.isEmpty

compareToArray.index(where: {$0.contains("oo")}) != nil
Run Code Online (Sandbox Code Playgroud)