En Swift, quiero comparar dos índices diferentes en la misma matriz. En este momento, mi código es algo así como:
var myArray:[String] = ["1" , "1", "2"] for i in myArray{ if(myArray[i] == myArray[i + 1]){ // do something } }De esto, me sale un error:
Cannot convert value of type 'String' to expected argument type 'Int'¿Cómo hago para arreglar esto?
La construcción for-each ( for i in array ) no le proporciona un índice, toma elementos de una secuencia.
Es posible que desee utilizar rangos como este para adquirir índices: for i in 0 ..< array.count
No es una respuesta directa a su pregunta, pero si lo que quiere es comparar elementos adyacentes en una colección, lo que necesita es comprimir la colección con la misma colección soltando el primer elemento:
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") } }Esto imprimirá:
1 = 1
hacer algo
1 != 2
hacer nada