Kotlin中的瓦尔vs var在声明变量时,哪一个更有性能

qmelpv7a  于 2023-06-24  发布在  Kotlin
关注(0)|答案(3)|浏览(137)

有一些传言称,在Kotlin中声明变量时,var比瓦尔更有性能,因为它没有也不需要不变性机制。我找不到任何只关注“声明变量”部分的资源,而其中许多资源关注多线程,它们通常以“瓦尔比var性能更高,因为编译器在访问它之前不需要检查该字段是否已更改”结束。你的意见是什么?

p1iqtdky

p1iqtdky1#

如果在JVM上运行Kotlin代码,您可能会面临一些针对使用val声明的不可变变量的优化。但是你永远不应该根据性能考虑使用一个而不是另一个。
通过在声明类属性时使用val而不指定任何访问修饰符,基本上是告诉编译器生成“getter”方法。在使用var的情况下,你告诉它生成“getter”和“setter”,这意味着更多的代码(你不会在类体中看到它,它将出现在编译后的代码中)。
valvar是关于设计的,你希望尽可能多地使用val,因为不变性比可变性更重要。即使var在性能方面“更快”,如果在任何地方都用var替换val,代码质量也会大大降低。

fkvaft9z

fkvaft9z2#

最好坚持正确的设计原则(根据逻辑更正确)和可读性,同时有一些Kotlin指南建议在可能的情况下选择val而不是var,并建议Kotlin是“val-first”语言,这对代码设计本身有微妙的影响。
Kotlin的val类似于Java中的final关键字。考虑到Java和Kotlin之间的紧密连接和兼容性,看看这个简单的性能测试:https://www.baeldung.com/java-final-performance
也就是说,将final关键字应用于变量(在我们的例子中假设为val)可以对性能产生轻微的积极影响。一般来说,人们不应该期望任何显着的性能提升,但这是这些“谣言”的理由。

wswtfjt7

wswtfjt73#

我同意“瓦尔更有性能,因为编译器知道它在访问它之前不会改变”。
我的意思是,对于实际情况的使用,如果你选择var或瓦尔,它不会影响你的性能,你应该使用上下文需要的正确的变量声明。如果变量的值不会像常量那样变化,我永远不会使用var(IDE通常会警告您这一点)。不要担心性能,这不是什么可能会潜在地降低您的应用程序的性能。
为您需要的内容使用正确的变量声明,就这样。
快乐编码!

相关问题