|
|
1
5
看见 In Java, should I use âfinalâ for parameters and locals even when I don't have to? 基本上,对于字段来说,它很有用,并且还可以更改其并发属性。 看见 Java concurrency: is final field (initialized in constructor) thread-safe? 然而,对于局部变量和参数,final的值不太明确。它有一些语义价值,但另一方面,它也可能是噪音
与…相比
因此,一些开发人员更喜欢使用final作为其语义值,而其他开发人员则不喜欢使用它,因为它冗长。 |
|
|
2
3
Java遵循传统的C思维方式,如果我们要创建某种东西(基本类型或对象),默认情况下它是一个变量,您必须在Java中输入“final”,在C/C++中输入“const”,使其成为常量。与这些语言相比,Swift是一种非常新的语言,它的目标是安全的编程模式和简单性。如果您在Java方面获得了进一步的经验,您就会知道人们确实更经常地使用最终和最佳实践。我认为(正如您所提到的)主要原因是您对Java的接触有限。 |
|
|
3
2
你缺少的是“人性”。
简单地说,Java的语法使不添加
注意,“默认情况下变量不是最终的”设计决策来自Java的祖先。
当然,这并没有解决您隐含的问题,即Java程序员是否
应该
使用
1-……在适当的情况下。使用
|
|
|
4
2
用初始化变量
例如,我可以用final定义List,如下所示:
以上内容
|
|
5
1
你看,我读到的第一本关于Swift的书(苹果公司的Swift编程语言2.0)说,你创建的每个未变异的变量都应该声明为
由于《Swift编程语言2.0》(本书)是Swift的官方指南,几乎每个人都遵循它。即使人们不读那本书,他们也会读那些读过那本书的人写的教程。因此,每个人的编码风格都是这样的。
相反,我读的第一本关于Java的书(用Java为假人编程)并没有强调我们应该使用
此外,在Java中,您必须再写5个字符(单词“final”加上一个空格)才能声明常量,而在Swift中,您不需要再写任何额外的字符(var和let的字符数相同)!你知道,程序员很懒。 |
|
|
6
1
至少根据我的经验,我被告知建议使用
其他情况下,如在Java中,除非声明,否则所有方法默认都是虚拟的
|