Swift 3数组var不再可变

时间:2016-09-29 08:09:30

标签: swift swift3

我正在将项目从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何时是不可变的和可变的。

2 个答案:

答案 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工作。