【发布时间】:2014-08-24 00:40:58
【问题描述】:
为什么要实例化一个类,我必须用 let 将它作为一个常量,
class car {
var type: Int?
var wheels: Int?
}
let auto = car()
我也可以使用 var:
var auto = car()
有什么区别?,谢谢
【问题讨论】:
标签: swift
为什么要实例化一个类,我必须用 let 将它作为一个常量,
class car {
var type: Int?
var wheels: Int?
}
let auto = car()
我也可以使用 var:
var auto = car()
有什么区别?,谢谢
【问题讨论】:
标签: swift
一个常量只能被赋值或初始化一次:
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,这样编译器可以更高效地处理它创建的代码。
【讨论】:
如果你使用 let 你定义一个常量,而使用 var 你声明一个变量。
"常量声明定义了常量名和初始化表达式的值之间的不可变绑定;常量的值设置后就不能改变了。也就是说,如果一个常量是用类对象初始化的,对象本身可以改变,但是常量名和它引用的对象之间的绑定不能。”
总结一下: 您可以更改变量引用的对象,但不能对常量执行此操作
【讨论】: