参考http://blog.csdn.net/zhangao0086/article/details/38704519
值类型,通常是结构体,枚举等,比如赋值操作就是先拷贝再赋值,得到的是拷贝,若是进行修改,修改的也只是拷贝值,对原来的值没有影响。基于这个原理,要修改结构体或枚举的方法是,需加关键字“mutating”。引用类型,通常是类,比如赋值操作就是共享一个数据,传递的是指向同一个数据的指针,修改的话,就是对那个指向的数据进行修改。
struct value{
var x = 0
}
var xValue = value()
var yValue = xValue
xValue.x = 5
yValue.x
class reference{
var x = 0
}
var xReference = reference()
var yReference = xReference
xReference.x = 5
yReference.x
println("yValue.x = \(yValue.x), yReference.x = \(yReference.x)")
"yValue.x = 0, yReference.x = 5"