저는 Swift를 처음 사용하고 Range를 사용하여 반복을 통해 컬렉션을 수정하면 어떻게 될지 탐험하고 있습니다. 이 두 개의 루프는 다른 동작을 왜 나는 알아낼 수 없습니다 :범위를 반복하면서 스위프트 배열을 수정하는 중 - 0을 계산할 때와 startIndex를 endIndex로 비교하는 경우
var things = ["a", "b", "c"]
for i in 0..<things.count {
print("i: \(i) count: \(things.count) value: \(things[i])")
if i == 1 {
things.append("x")
}
}
// i: 0 count: 3 value: a
// i: 1 count: 3 value: b
// i: 2 count: 4 value: c
대 나는 문자 그대로의 범위는 배열의 속성을 액세스 할 때 볼 수 있도록
var things = ["a", "b", "c"]
for i in things.startIndex...things.endIndex {
print("i: \(i) count: \(things.count) value: \(things[i])")
if i == 1 {
things.append("x")
}
}
// i: 0 count: 3 value: a
// i: 1 count: 3 value: b
// i: 2 count: 4 value: c
// i: 3 count: 4 value: x
나는이 Array 클래스 확장을 만들어 :
를 나는 정상적인 사람 대신 이러한 속성을 사용하는 경우extension Array {
var myCount: Int {
print("myCount (\(self.count))")
return self.count
}
var myStartIndex: Int {
print("myStartIndex (\(self.startIndex))")
return self.startIndex
}
var myEndIndex: Int {
print("myEndIndex (\(self.endIndex))")
return self.endIndex
}
}
, 내가 얻을 :
,682,911,921,996 33,210및
myStartIndex (0)
myEndIndex (3)
i: 0 count: 3 value: a
i: 1 count: 3 value: b
i: 2 count: 4 value: c
i: 3 count: 4 value: x
이 마법 같은 느낌 때문에 내가 모르는 뭔가가 있어야합니다
! endIndex
이 재평가되고있는 것 같으나 count
은 아닙니다. 뭐라 구요? 코드의 첫 부분에서 사용한 때문에
나는 물건에있어 for.indices {'또는 물건에있는 물건에 대한 색인이 필요하지 않다면 { –