Swift:无法使用removeAtIndex从数组中删除项目

时间:2014-11-12 01:57:45

标签: arrays swift

我有一个名为arr的数组,类型为[Int8]:

var arr: [Int8] = []

在整个程序中,我使用append和insert将项添加到数组中。但是,当我尝试使用arr.removeIndexAt(x)删除项时,它会抛出错误:

Playground execution failed: <EXPR>:144:13: error: immutable value of type '[Int8]'
only has mutating members named 'removeAtIndex'
        arr.removeAtIndex(x)

为什么会这样?我尝试在操场上重新创建它:

var arr: [Int8] = []
arr.append(1)
arr.removeAtIndex(0)

它工作正常。有人可以向我解释我如何解决这个问题或以其他方式删除项目?任何帮助都会很棒。谢谢:))

2 个答案:

答案 0 :(得分:1)

找到解决方案。将mutating添加到removeExtraZeros()的定义中,以允许它更改属性,即

mutating func removeExtraZeros() { ... }

不幸的是,您遇到了while循环后for循环无限循环的问题,因此请考虑修改该部分。

答案 1 :(得分:1)

您说当您尝试使用arr.removeIndexAt(x)删除项目时,会抛出错误。

因为方法名称是removeAtIndex:,而不是removeIndexAt: