2014-07-20 13 views

Antwort

10

Array.endIndex soll die 1 über das Ende des Arrays (oder gleich count) für die Iteration Zwecke sein, nicht Indizierung.

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

count ist die Anzahl der Elemente in der Sammlung, wobei die endIndexIndex (from the Indexable protocol) ist, die gerade über das Ende der Sammlung ist.

Für Array sind diese identisch. Für einige andere Sammlungen, wie ArraySlice, sind sie nicht:

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

Was ist der Zweck der mit 'endIndex' auf diese Weise? Welche zusätzliche Funktionalität gibt es, weil es ein wenig kontraintuitiv erscheint? – Honey

Verwandte Themen