这个问题不仅仅是让val
这个词有意义,还提醒造词者告诉我们他们为什么给这个词起名字,这可不是一件小事,这会让我们更舒服地学习新知识,我们想学什么就学什么。
例如,许多人想知道为什么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
表示值
这是一个只读值。
var
是一个可变值
在Kotlin文档中,我们只有以下几个字。 只读局部变量使用val关键字声明。可变局部变量使用var关键字声明。 这个问题不仅是让我们理解单词的意思,也是提醒单词制造者告诉我们他们为什么给这个单词命名,这不是一件小事,这会让我们更舒服地学习新知识,我们想学习和理解一切。
不过,这是java目标版本。
为什么GCC中的C预处理器将单词(小写字母)解释为常量? 测试C: 的结果(预处理阶段后停止): 这当然会产生一个错误。 (顺便提一下:文件中没有。)
我看到一些教程建议在Kotlin中使用val而不是var。我相信val在Java中就像常量,对吗?那么,如果建议使用它而不是var,我们如何更改它的值? 更新:例如:为什么我要使用val而不是var声明类成员(变量或字段)?而在Java中,它就像:
代码B是一个定制的回收视图apater,带有单选按钮。 mCustomAdapter 在 Code A 中的 fun methodA() 和 fun methodB() 中都发生了变化,因此 的引用也发生了变化,这意味着 val 属性 mySelectedIndex 从不同的地址获取值。 在我看来,val属性不能更改,为什么应用程序不会导致错误? 代码A 代码B 被改进的 我觉得代码DD和代码EE
Kotlin中的和有什么区别? 如本链接所述: 只读属性声明的完整语法与可变属性声明的不同之处在于两个方面:它以val而不是var开头,并且不允许setter。 但就在前面有一个使用setter的示例。 为什么我们两者都需要? 这不是Kotlin中变量的重复,与Java的区别:“var”vs.“val”?因为我询问的是与文档中的特定示例相关的疑问,而不仅仅是一般性的疑问。