为什么Kotlin使用“val”这个词来代表常量?

我真的想知道为什么Kotlin使用val这个词来代表常量?

如果var意味着变量。 val意味着什么? val表示var + l还是val只是一个单词?

在Kotlin文档中,我们只有以下几个字。

使用val关键字声明只读局部变量。 可变的局部变量是使用var关键字声明的。

这个问题不仅是为了弄清val这个词,还要提醒WMA MAKER告诉我们为什么他们说出这个词,这不是一件小事,这会让我们学习新知识更加舒适,我们想要学习和理解一切。

例如,很多人想知道为什么Swift使用let或Objective-C为什么使用.m文件扩展名?

我认为官方的文件或回应是非常重要的,任何猜测或假设都不是真的有用,因为它没有定罪,混淆仍然是困惑的。

我也在官方论坛上问过这个问题:
https://discuss.kotlinlang.org/t/why-kotlin-use-the-word-val-to-stand-for-constant/4491

一些参考:
https://discuss.kotlinlang.org/t/change-val-to-something-else/1180/13

val意味着value

这是一个只读值。

var是一个可变的值

const另一方面不是100%正确的。 值PI(3.14 ..)是一个常数。 它的价值从不改变。 在这行val x = random.nextInt()x的值将(希望)总是不同的,但是你希望这个值不要在函数中被修改。 所以关键字val是非常合适的。

val关键字只有一个字。 val缩写在任何地方都没有找到。 你的问题解释什么是val

使用val关键字声明只读局部变量。 可变的局部变量是使用var关键字声明的。

这里是一个网站解释为什么val是只读的,而不是不可变的。

http://blog.danlew.net/2017/05/30/mutable-vals-in-kotlin/

val并不意味着不可变,val意味着只读。 这意味着你不能显式写入val,但是不能保证它们是不可变的

https://artemzin.com/blog/kotlin-val-does-not-mean-immutable-it-just-means-readonly-yeah/

Kotlin允许声明破坏属性不变性的val的get(),并且只留下外部“用户”的读权限。

Kotlin的语法灵感来自Scala。 在Kotlin中,除了语法之外,还有一些思想来自Scala。 Kotlin也自己添加了一些东西,并且做了一些与Scala完全不同的事情(比如,与Kala相比,Kotlin没有明显的转换)。 长话短说:你必须问斯卡拉大家为什么选择关键字组合var和val。