Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 科特林:我应该使用val而不是var吗?_Kotlin - Fatal编程技术网

Kotlin 科特林:我应该使用val而不是var吗?

Kotlin 科特林:我应该使用val而不是var吗?,kotlin,Kotlin,假设我有这样的东西: var x : String = "str" // here do some with x, but not assign new value to it 然后Android Studio告诉我x应该用val声明,而不是var 我知道var和val之间有什么区别 如果我不需要为x赋值,它可以是val 但它在运行时有什么不同吗? 当我用val而不是var声明变量时,它会更快吗 这不是复制品!我问的是性能,而不是意义上的差异。val就像java中的最后一个变量。如果您不想更

假设我有这样的东西:

var x : String = "str"

// here do some with x, but not assign new value to it
然后Android Studio告诉我x应该用
val
声明,而不是
var

我知道
var
val
之间有什么区别
如果我不需要为
x
赋值,它可以是
val

但它在运行时有什么不同吗?
当我用
val
而不是
var
声明变量时,它会更快吗


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

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

var
是改变其值的正常变量<代码>变量是可变的


您应该使
x
val,因为读取代码的程序员会知道这是最终变量。使用var/val对性能没有任何影响。

这是更多的语言级增强—建议尽可能使用java中的final,但没有人遵循这一建议。您非常喜欢将来阅读代码的人,当然不要忘记可为null的类型。是的,您最好使用val而不是var-您可以在需要时更改声明