为什么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。