正如Apple文档所说:
使用
let做一个常数,var使一个变量.在编译时不需要知道常量的值,但是必须为其分配一次值.这意味着您可以使用常量来命名您确定一次但在许多地方使用的值.
让我们考虑一下课程:
class A {
var a = [String]()
}
Run Code Online (Sandbox Code Playgroud)
由于数组a是可变的,因此它是通过定义的var.但是如果我们考虑B类,A的实例是属性呢?
class B {
let b = A()
}
Run Code Online (Sandbox Code Playgroud)
即使b是可变的,let关键字也可以,因为引用不会被更改.另一方面,var也可以,因为内容b可以改变.我应该在这个例子中选择什么 - let或者var?
let尽可能使用.var必要时使用.使事物不可变会使很多错误成为不可能,所以它应该是你的默认选择.尽可能设置所有值,init并且永远不要更改它们.同样,你应该尽可能地使用struct,class何时必须使用(尽管根据我的经验,这比使用更难实现let).
所以在你的例子中,如果你不能A.a在初始化期间设置,那么是的,它应该是var.但在你的例子没有必要使用var的B.b.(在任何一个例子中都没有理由使用class,至少在你提出问题的方式中.)
| 归档时间: |
|
| 查看次数: |
853 次 |
| 最近记录: |