Swift Index 及其实现



我是编程新手。我试图了解指数是如何在swift中工作的。这是swift文件中的以下代码。转换为函数。

func ind(){
var c = [10, 20, 30, 40, 50] //index = [0:5]
var i = c.startIndex //i = [0]
while i != c.endIndex { // i!= [5] , while i not equal to [5]
c[i] /= 5
i = c.index(after: i)
}
print(c) // [2,4,6,8,10]
}

代码行CCD_ 1对我来说似乎没有意义;在";表示字符串index之后的字符串的字符,但由于我们将"i"初始化为零(0(,因此输出应保持[4]。其次,如果我用整数2来代替。循环不断重复。为什么?提前感谢您的时间

after表示此上下文中列表中的下一个元素。索引更为通用,并且不限于String。此外,索引可以有不同的类型,这取决于您正在操作的结构。

例如:

var c1 = [10, 20, 30, 40, 50] //
var i1 = c1.startIndex
// Print: Int
print(type(of: i1))
var c2 = "Hello" //
var i2 = c2.startIndex
// Print: Index
print(type(of: i2))

您甚至可以为特定类型创建自己的索引,只要您提供计算下一个索引的方法即可。

因此,在这个特定示例的代码中,索引的类型是Int。如果将i的值更改为常数2,则永远不能等于结束索引的值(此处为5(。然后,你的循环将永远不会结束。

最新更新