Home Articles

为什么Kotlin使用“val”这个词代表不变?

Asked
Viewed 171 times
1

我真的想知道为什么Kotlin使用 val 这个词代表不变?

如果 var 表示变量 . val 意味着什么? val 表示 var lval 只是一个字?

在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 Answers

  • 6

    Kotlin的语法受Scala的启发 . 在Kotlin中,除了语法之外,还从Scala中获取了一些想法 . Kotlin还自己添加了一些东西,并且做某些事情与Scala完全不同(即,与Scala相比,Kotlin没有隐式转换) . 长篇大论:您必须向Scala人询问他们为什么选择关键字组合var和val .

  • 2

    来自 Value 的val . var来自变量 .

    value-为变量,常量或表达式(wiki)分配或计算的数字等属性

    变量 - 与值关联的符号名称,其关联值可能会更改(wiki)

  • 1

    val 表示 value

    这是一个只读值 .

    var 是一个可变值

    另一方面, const 不是100%正确 . 值PI(3.14 ..)是常数 . 它的 Value 永远不变 . 此行 val x = random.nextInt()x 的值(希望)总是不同,但您希望在函数中不修改该值 . 所以关键字 val 非常合适 .

  • 0

    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(),它打破了属性的不变性,只留下外部“用户”的读取权限 .

Related