斯威夫特:什么时候应该使用“ var”而不是“ let”?

阿森

如Apple文档所述:

使用let做一个常数,var使一个变量。常量的值在编译时不需要知道,但是您必须为它赋值一次。这意味着您可以使用常量来命名一次确定但在许多地方使用的值。

让我们考虑一些类:

class A {
    var a = [String]()
}

由于arraya是可变的,因此可通过进行定义var但是,如果我们考虑类B,其中A的实例是属性,该怎么办?

class B {
    let b = A()
}

即使b可变,let关键字也可以,因为引用不会更改。另一方面,var也可以,因为b可以更改的内容我应该怎么挑在这个例子中-letvar

罗布·纳皮尔

let尽可能使用var必要时使用使事物不可变会导致许多错误的发生,因此它应该是您的默认选择。尽可能设置所有值,init并且永远不要更改它们。同样,您应该struct在可能的时候和class必须的时候使用(尽管根据我的经验,这比使用难得多let)。

因此,在您的示例中,如果无法A.a在初始化期间进行设置,则可以,它应该为var但在你的例子没有必要使用varB.b(而且,在任何一个示例中都没有理由class至少使用您提出问题的方式来使用。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我什么时候应该在TypeScript中使用“ var”,“ let”和“ const”

什么时候应该在Angular 2中使用var或let?

什么时候应该使用let {},什么时候该使用普通!= null

什么时候使用Var而不是函数?

什么时候应该使用 var,什么时候应该使用 string、ulong、int 等

为什么大多数时候我应该使用const而不是在JavaScript中使用let?

JAVASCRIPT 何时以及为什么我应该使用 const 而不是 let 进行 var 声明

什么时候应该使用转义而不是encodeURI / encodeURIComponent?

什么时候应该使用AutoSeededRandomPool(而不是NonblockingRng)?

什么时候应该使用@Component而不是@Service?

Python:什么时候应该使用子类而不是方法?

我什么时候应该使用 try catch 而不是 then catch?

什么时候应该使用HStoreField而不是JSONField?

在Python中,什么时候应该使用函数而不是方法?

在Python中,什么时候应该使用函数而不是方法?

什么时候应该使用ld而不是gcc?

什么时候应该使用原语而不是包装对象?

什么时候应该使用结构而不是类?

什么时候应该使用自旋锁而不是互斥锁?

什么时候应该使用列表List <>而不是Collection <>

什么时候应该使用Map而不是For Loop?

什么时候应该使用Logic App而不是Web Job?

什么时候应该使用结构而不是枚举?

什么时候应该使用setupFiles而不是setupFilesAfterEnv?

什么时候应该使用rdf:ID而不是rdf:about?

什么时候使用`let ... in`绑定变量?

RSpec的主题和let之间有什么区别?什么时候应该使用它们?

我什么时候应该使用let,成员val和成员this。

为什么Xcode一直坚持使用let而不是var?