endIndex restituisce gli stessi valori del conteggio. E 'un comportamento corretto o un bug?Qual è il comportamento corretto di endIndex dell'array in Swift?
var ar = [1, 2, 3, 4]
ar.count // 4
ar.endIndex // 4
endIndex restituisce gli stessi valori del conteggio. E 'un comportamento corretto o un bug?Qual è il comportamento corretto di endIndex dell'array in Swift?
var ar = [1, 2, 3, 4]
ar.count // 4
ar.endIndex // 4
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])
}
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
Qual è lo scopo di avere 'endIndex' in questo modo? Quale funzionalità aggiuntiva dà perché sembra un po 'contro-intuitiva. – Honey