swift - contains or for-loop,哪个更高效?

标签 swift for-loop contains

使用 Swift,我有一个包含大约 30 个字符串的数组(每个字符串都是一个单词)。我还有一个可变字符串,我想检查该字符串是否在数组中具有匹配值。

我的问题是,从效率的角度来看,我应该只使用:

if myArray.contains("MyString") {
    //Do stuff
}

或者我应该遍历它吗?

for i in 0..<myArray.count {
    if myArray[i] == "MyString" {
        //Do stuff
    }
}

最佳答案

从效率的角度来看,使用 myArray.contains("myString") 效率更高,因为一旦它达到等于 "myString"的值,它就会停止,如果它确实存在于数组中全部。 for-loop 将继续遍历所有值,即使在它找到您指定的值之后也是如此,因此它的效率较低,但可能仅提供可忽略的效率提升,除非数组具有大量元素。

就像@vadian 所说的,还有第三种方法。还有第 4 种方法,使用 while-loop,你可以在使用 break 找到你搜索的值后停止(你可以也可以在您的 for-loop 中执行此操作),但是使用 .contains(...) 更具可读性和简洁性,因此在我看来是最佳选择。

关于swift - contains or for-loop,哪个更高效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40310576/

相关文章:

ios - 在 Collection View 中使用自定义流布局时添加标题

ios - 关联的枚举类型实现 CaseItratable

php循环逻辑问题

R - 测试 string1 第一次出现后是否跟着 string2

swift - 如何将组合中的错误类型从“从不”更改为“错误”?

function - 在 Julia 的 for 循环中索引函数的名称

java - 如何检查并显示其他两个特定单词之间的单词?

javascript - Jquery 包含特殊字符和小写字母

java - 我应该如何为 LinkedList 定义 contains() 命令?

ios - XIB 需要初始化器——没有 Storyboard