2014-07-03 43 views
0

为什么实例化一个类我必须这样做,作为一个常量类实例化在苹果斯威夫特

class car { 
    var type: Int? 
    var wheels: Int? 
} 

let auto = car() 

我可以使用VAR还有:

var auto = car() 

什么是差别吗?,谢谢

回答

2

一个常量只能分配给或初始化一次:

let constantAuto = car() 
constantAuto.type = 1  // changing properties is fine 
constantAuto.wheels = 4 
constantAuto = car()  // error - can't do this 

而变量可以被分配到多个时间:

var variableAuto = car() 
variableAuto.type = 1  // changing properties is fine here too 
// etc 
// need to reset: 
variableAuto = car() 

从本质上讲,当你知道你只需要一次创建实例,使用let,所以编译器可以对其创建的代码更高效。

0

如果你正在使用让你定义一个常量,而与var你声明一个变量。

“常量声明定义了常量名和初始化表达式的值之间的不可变绑定;在设置了常量值后,它不能被改变,也就是说,如果一个常量被类对象初始化,对象本身可以改变,但是常数名称和它引用的对象之间的绑定不能。“

https://developer.apple.com/library/prerelease/ios/documentation/swift/conceptual/swift_programming_language/Declarations.html

来概括: 你可以改变一个变量引用的对象,但你不能这样对待一个恒定