let streets = ["Adams", "Bryant", "Channing", "Douglas", "Evarts"]
print(streets[streets.startIndex]) // 访问第一个元素
print(streets[streets.endIndex-1]) // 访问最后一个元素
// Log 'Adams'
// Log 'Evarts'
let streetsSlice = streets[2...]
print(streetsSlice) // ["Channing", "Douglas", "Evarts"]
print(streetsSlice[0]) // ❌ 数组越界, Fatal error: Index out of bounds: file Swift/SliceBuffer.swift, line 290
print(streetsSlice.startIndex) // 2
print(streetsSlice[2]) // "Channing",对于切片来说,最好使用' startIndex '访问第一个值。
🌈🌈
总是使用切片的' startIndex '属性,而不是假设它的索引从一个特定的值开始。试图通过使用片索引边界之外的索引来访问元素可能会导致运行时错误,即使该索引对于原始集合是有效的。
网友评论