Tag: value type

Swift和mutating结构

有什么我不完全理解什么时候在Swift中改变值types。 正如“Swift编程语言”所述,iBook声明: 默认情况下,值types的属性不能从其实例方法中修改。 所以为了使这成为可能,我们可以在结构和枚举中使用mutating关键字来声明方法。 对我来说不完全清楚的事情是这样的:你可以从一个结构体外改变一个var,但你不能从它自己的方法改变它。 这对我来说似乎是违反直觉的,因为在面向对象的语言中,你通常试图封装variables,所以只能从内部改变它们。 结构似乎是相反的。 详细说明,下面是一个代码片段: struct Point { var x = 0, y = 0 mutating func moveToX(x: Int, andY y:Int) { //Needs to be a mutating method in order to work self.x = x self.y = y } } var p = Point(x: 1, y: 2) px = 3 //Works from […]