我真的想知道为什么Kotlin使用 val
这个词代表不变?
如果 var
表示变量 . val
意味着什么? val
表示 var
l
或 val
只是一个字?
在Kotlin文档中,我们只有以下单词 .
使用val关键字声明只读局部变量 . 使用var关键字声明可变局部变量 .
这个问题不仅要理解 val
这个词,还要提醒WORD MAKER告诉我们他们为什么命名这个词,这不是一件小事,这会让我们学习新知识更加舒服,我们想要学习并理解一切 .
例如,很多人想知道为什么Swift使用 let
这个词或为什么Objective-C使用 .m
文件扩展名?
I think the official documentation or response is really important,any guess or assuming is not really helpful,because it's not convictive,the confused will be still the confused.
我也在官方论坛上问了这个问题:
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
4 回答
val
表示value
这是一个只读值 .
var
是一个可变值另一方面,
const
不是100%正确 . 值PI(3.14 ..)是常数 . 它的 Value 永远不变 . 此行val x = random.nextInt()
中x
的值(希望)总是不同,但您希望在函数中不修改该值 . 所以关键字val
非常合适 .val
关键字只有一个字 .val
的缩写在任何地方都找不到 . 你的问题解释了什么是val
.这是一个网站解释了为什么
val
是只读而不是不可变的 .http://blog.danlew.net/2017/05/30/mutable-vals-in-kotlin/
https://artemzin.com/blog/kotlin-val-does-not-mean-immutable-it-just-means-readonly-yeah/
Kotlin的语法受Scala的启发 . 在Kotlin中,除了语法之外,还从Scala中获取了一些想法 . Kotlin还自己添加了一些东西,并且做某些事情与Scala完全不同(即,与Scala相比,Kotlin没有隐式转换) . 长篇大论:您必须向Scala人询问他们为什么选择关键字组合var和val .
来自 Value 的val . var来自变量 .
value-为变量,常量或表达式(wiki)分配或计算的数字等属性
变量 - 与值关联的符号名称,其关联值可能会更改(wiki)