我正在尝试编写一些将我的数组附加到此代码的代码: [" e"," 0"," "," 0"]但我得到的是:[" e"," 0"," 0"]。我不明白它为什么显示后者,因为据我所知,当我加2时索引变为3。 此外,我也得到了#34;致命错误:数组索引超出范围"当我尝试运行这个:TheTape.insert(" 0",atIndex:index + 2)。在我没有指定数组的大小时,我也不明白为什么它超出了范围。
感谢您的帮助!
import UIKit
var TheTape = [Any]()
var index = 0
if(TheTape.isEmpty){
TheTape.insert("e", atIndex: 0)
print(TheTape)
index++
TheTape.insert("0", atIndex: index)
print(TheTape)
index + 2
TheTape.insert("0", atIndex: index)
print(TheTape)
}
答案 0 :(得分:2)
基本上你是这样做的;
TheTape.insert("e", atIndex: 0) // array = ['e'] (insert at 0)
print(TheTape)
index++ // index 0 -> 1
TheTape.insert("0", atIndex: index) // array = ['e', '0'] (insert at 1)
print(TheTape)
index + 2 // Does nothing
TheTape.insert("0", atIndex: index) // array = ['e', '0', '0'] (insert at 1)
print(TheTape)
正如您所看到的,index + 2
什么都不做(或者更确切地说,它计算index + 2
但不会将结果存储在任何地方),如果您想将索引增加2,请使用index += 2
在数组外部的索引处插入是一个错误,并且会给出您看到的错误。如果你想要一个空值来分隔值,你需要先插入它。
答案 1 :(得分:1)
首先,index + 2
不会更改index
其次,您不能TheTape.insert("0", atIndex: index+2)
,因为您的数组TheTape
只有2的大小,当时您在位置{{1}插入object
这需要至少在具有3个元素的数组。