2014-07-20 13 views

risposta

10

Array.endIndex intende essere il 1 oltre la fine della matrice (o uguale conteggio) per scopi di iterazione, non indicizzazione di.

let x = [1, 2, 3, 4] 
for var i = x.startIndex; i < x.endIndex; i++ { 
    println(x[i]) 
} 
12

count è il numero di elementi della collezione, mentre endIndex è la Index (from the Indexable protocol) che è appena passato il fine della raccolta.

Per Array, questi sono gli stessi. Per alcune altre collezioni, come ArraySlice, non lo sono:

let array = ["a", "b", "c", "d", "e"] 

array.startIndex // 0 
array.count  // 5 
array.endIndex // 5 

let slice = array[1..<4] // elements are "b", "c", "d" 

slice.startIndex // 1 
slice.count  // 3 
slice.endIndex // 4 
+3

Qual è lo scopo di avere 'endIndex' in questo modo? Quale funzionalità aggiuntiva dà perché sembra un po 'contro-intuitiva. – Honey

Problemi correlati