【发布时间】:2017-03-11 16:05:45
【问题描述】:
使用 Swift,我有一个大约 30 个字符串的数组(每个字符串是一个单词)。我还有一个变量字符串,我想检查该字符串在数组中是否有匹配的值。
我的问题是,从效率的角度来看,我应该只使用:
if myArray.contains("MyString") {
//Do stuff
}
或者我应该循环遍历它吗?
for i in 0..<myArray.count {
if myArray[i] == "MyString" {
//Do stuff
}
}
【问题讨论】:
-
myArray.contains()也枚举数组,但在给定元素第一次出现时停止。 -
你应该问自己:这重要吗?这是否是应用程序的性能瓶颈?如果答案是“是”,则使用仪器并进行测量。如果答案是“否”,请选择您觉得更舒服的选项。
-
@MartinR 会的,谢谢!
-
还有第三种方式:
if myArray.index(of:"MyString") != nil -
(再说一次,如果我们处理 30 个字符串,无论哪种方式,性能差异都可以忽略不计。)