Se si desidera eseguire l'iterazione su una raccolta, utilizzare la sintassi for <element> in <collection>
.
for element in arr {
// do something with element
}
Se hai bisogno anche accesso al indice dell'elemento ad ogni iterazione, è possibile utilizzare enumerate()
. Poiché gli indici sono a base zero, l'indice avrà l'intervallo 0..<arr.count
.
for (index, element) in arr.enumerate() {
// do something with index & element
// if you need the position of the element (1st, 2nd 3rd etc), then do index+1
let position = index+1
}
È sempre possibile aggiungere un all'indice ad ogni iterazione per accedere alla posizione (per ottenere una gamma di 1..<arr.count+1
).
Se nessuno di questi risolve il problema, è possibile utilizzare la gamma 0..<arr.count
per scorrere gli indici dell'array, o come @vacawama says, è possibile utilizzare la gamma 1..<arr.count+1
per scorrere i posizioni.
for index in 0..<arr.count {
// do something with index
}
for position in 1..<arr.count+1 {
// do something with position
}
0..<0
non può dormire per un array vuoto come 0..<0
è solo un campo a vuoto, e 1..<arr.count+1
non può dormire per un array vuoto come 1..<1
è anche un campo a vuoto.
Vedere anche @vacawama's comment below sull'utilizzo di stride
per eseguire in sicurezza più intervalli personalizzati. Ad esempio (Swift 2 sintassi):
let startIndex = 4
for i in startIndex.stride(to: arr.count, by: 1) {
// i = 4, 5, 6, 7 .. arr.count-1
}
Swift 3 sintassi:
for i in stride(from: 4, to: arr.count, by: 1) {
// i = 4, 5, 6, 7 .. arr.count-1
}
Qui startIndex
è il numero per iniziare la distanza alla, arr.count
è il numero che la gamma rimarrà sotto, e 1
è la lunghezza del passo. Se il tuo array ha meno elementi del dato indice iniziale, il ciclo non verrà mai inserito.
sicuramente si desidera '0 ..
Hamish
... e questo risolve anche il tuo problema dato che' 0 .. <0' è un intervallo vuoto in modo che il tuo corpo del ciclo non venga inserito. – vacawama
... ed è fondamentalmente a pagina 2 del manuale di Swift: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/BasicOperators.html#//apple_ref/doc/uid/TP40014097 -CH6-ID60 – Eiko