我正在将项目从Swift 2.2迁移到3.0,并且在连接数组时遇到错误。以下是以前的工作:
var x : [(index:Int, value:Float)] = []
for i in 0..<n {
x += [(i, Float(i))]
}
抛出:
Left side of mutating operator isn't mutable: 'x' is immutable
在这种情况下,我不清楚为什么声明为var
的数组永远不可变。
我搜索过Swift 3文档,我不清楚哪些规则已经改变会导致这些错误,或者如何知道数组var何时是不可变的和可变的。
答案 0 :(得分:3)
似乎是数组类型造成了一堆乱七八糟的东西,你需要:
var x: [(index:Int, value:Float)] = []
for i in 0..<n {
x += [(index: i, value: Float(i))]
}
那些数组元素真的看起来应该是某种类型的结构......
答案 1 :(得分:0)
刚试过XCode 8 Playground
class MyClass {
var positions : [Float] = []
var values : [Float] = []
func myFunc(p:Float, v:Float) {
positions.append(p)
self.values.append(v)
}
}
它为swift 3工作。