当前位置: 首页 > 知识库问答 >
问题:

科特林:我应该用瓦尔代替VAR吗?[副本]

司宏伯
2023-03-14
var x : String = "str"

// here do some with x, but not assign new value to it

然后Android Studio告诉我,x应该用val而不是var来声明。
我知道varval之间有什么区别。
如果我不需要给x赋值,它可能是val
但是在运行时会有什么不同吗?
当我用val而不是var来声明变量时,会不会更快?

这不是重复的!我问的是性能,而不是意义上的差异。

共有1个答案

乐正烨熠
2023-03-14

val就像Java中的最后一个变量。如果不更改值,请使用它。val是不可变的。

var是一个可以更改其值的普通变量。var是可变的。

您应该将x设置为val,因为正在阅读代码的程序员会知道这是最后一个变量。使用var/val对性能没有任何影响。

 类似资料:
  • 我知道在Kotlin中,用于声明常量,用于只读属性。然而,我想知道在以下情况下,哪一个更适合使用。 假设我有一个片段,它需要一个用于和的键。我想知道以下两个选项中哪一个更好: 我更喜欢#选项2,因为它清楚地表明是一个常量,值是在编译时确定的。然而,由于它是在顶层声明的,它需要在编译后的java代码中创建一个类,即(假设文件名是)。在#选项1中,没有生成额外的类,尽管的值将在运行时分配,而不是恒定的

  • 问题内容: _ 我调查了Facebook的来源,他们使用标签显示图标。 另外,今天我调查了Twitter的Bootstrap。它还使用标签显示图标。 但,根据HTML5规范: I元素代表替代声音或语气中的文本范围,或以其他方式偏离了正常散文,例如分类名称,技术术语,另一种语言的惯用语,思想,船名或其他散文,其典型的印刷形式为斜体。 他们为什么使用标签显示图标? 这不是一个坏习惯吗? 还是我在这里想

  • 我有一个大型Android游戏,其中每个逻辑屏幕都有一个活动。(启动画面、开始画面、关卡选择器、游戏画面和设置是不同的活动)。现在一切正常。 如果我重写所有内容,使得只有一个活动,逻辑屏幕是碎片,会减少RAM或CPU消耗吗?

  • 如何在使用Kotlin的Spring Boot中正确初始化ConfigurationProperties? 目前我喜欢下面的例子: 但是它看起来很丑陋,实际上不是一个iable,foo是常量ue,应该在启动期间初始化,将来不会改变。

  • 在kotlin中定义一个有公共getter和私有(只有内部可修改)setter的var的正确方法是什么?

  • 我想说明的一点是 安全//从NPE保存,但它可以抛出 最优性 当不需要可变属性时,选择不是更好吗?