EndIndex zwraca te same wartości, co liczba. Czy to prawidłowe zachowanie lub błąd?Jakie jest prawidłowe zachowanie endIndex tablicy w Swift?
var ar = [1, 2, 3, 4]
ar.count // 4
ar.endIndex // 4
EndIndex zwraca te same wartości, co liczba. Czy to prawidłowe zachowanie lub błąd?Jakie jest prawidłowe zachowanie endIndex tablicy w Swift?
var ar = [1, 2, 3, 4]
ar.count // 4
ar.endIndex // 4
Array.endIndex
ma być jeden obok końca tablicy (albo tak samo jak liczby) w celu iteracji nie indeksowanie.
let x = [1, 2, 3, 4]
for var i = x.startIndex; i < x.endIndex; i++ {
println(x[i])
}
count
oznacza liczbę elementów w kolekcji, natomiast endIndex
jest Index
(from the Indexable
protocol) który jest tuż za końcem kolekcji.
Dla Array
są one takie same. Dla niektórych innych kolekcjach, takich jak ArraySlice
, nie są one:
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
Jaki jest sens posiadania 'endIndex' w ten sposób? Jaka jest dodatkowa funkcjonalność, ponieważ wydaje się nieco sprzeczna z intuicją. – Honey