比较Swift数组中不同索引位置的元素

26 浏览
0 Comments

比较Swift数组中不同索引位置的元素

在Swift中,我想比较同一个数组中的两个不同的索引。目前,我的代码大致如下:

var myArray:[String] = ["1" , "1", "2"]
for i in myArray{
     if(myArray[i] == myArray[i + 1]){
     // do something
     } 
}

由此,我得到了一个错误:

Cannot convert value of type 'String' to expected argument type 'Int'

我该如何解决呢?

admin 更改状态以发布 2023年5月21日
0
0 Comments

for-each结构(for i in array) 不会提供下标,它会从序列中获取元素。

你可能想使用类似这样的范围获得下标:
for i in 0 ..< array.count

0
0 Comments

这不是直接回答你的问题,但是如果你想比较集合中相邻的元素,你需要将该集合与删除第一个元素的相同集合进行zip:

let array = ["1" , "1", "2"]
for (lhs,rhs) in zip(array, array.dropFirst()) {
     if lhs == rhs {
         print("\(lhs) = \(rhs)")
         print("do something")
     } else {
         print("\(lhs) != \(rhs)")
         print("do nothing")
     }
}

这将输出:

1 = 1
做些事情
1 != 2
什么也不做

0