36944


varとvalがどっちがどっちなのかよくわからなくなります。語源がわかれば迷うことが少なくなると思いました。  
varはvariable。ではvalは？


CC BY-SA 3.0
2017-08-04T09:17:32.700
36940
2017-08-04T10:01:25.160
2017-08-04T09:53:05.750
17238
17238
question
kotlin
Kotlinのvalって何の略称なのでしょうか？


var: variable = 変数 = 変更できるもの  
val: value = 値 = 変更できないもの

という感じでしょうか。

* * *

【追記】  
「変更できないもの」だと誤解を招くかもしれないかと思ったので補足します。  
プログラミング用語的にいうと正確には「再代入できないもの」になります。

ざっくりとコンパイラ気にせずに例をかくと

[code]

    // varで人という変数を宣言し、最初に太郎さんが代入されています。
    var 人 = 太郎
    // 次に人に次郎さんを代入しました。
    // 太郎さんと次郎さんは別人ですが、人という変数には代入できます。
    人 = 次郎
    
    // 一方、太郎という値をvalで宣言し、最初に太郎さんを代入すると
    val 太郎 = 太郎
    // 次に別人である次郎さんは代入できません。
    太郎 = 次郎 // ×代入できません
    // しかし、太郎さんの名前が次郎に変わることはあるかもしれません。
    太郎.名前 = 次郎
    
[/code]


CC BY-SA 3.0
2017-08-04T09:32:53.987
36942
2017-08-04T10:01:25.160
2017-08-04T10:01:25.160
20272
20272
36940
answer


**value** みたいですね(予想通りだと思いますが)。

[このページ](https://www.reddit.com/r/programming/comments/6b38tq/i_wrote_an_article_about_why_i_switched_out_java/)にこんなことが書いてありました。

> Why? Not sure the exact origins of which language did it first. But scala,
> which Kotlin is inspired by uses val and var.  
>  Var means variable, and thus is an asisgnable reference number  
>  Val means value, which has a specific meaning. For example the value of 2
> does not change, ever.

[この資料](https://www.slideshare.net/sbjug/introduction-to-scala-for-java-
programmers-15050372)の14ページ目にvarとvalについて記載があります。


CC BY-SA 3.0
2017-08-04T09:46:50.627
36944
2017-08-04T09:46:50.627
21092
36940
answer