我正在尝试在scala shell中执行max函数但以某种方式获取错误
scala> def max(x: Int, y: Int): Int = {
if (x > y) x
else y
}
max: (x: Int, y: Int)Int
scala> a =max(10, 20)
<console>:14: error: not found: value a
.....
当我尝试下面的方法时,它会起作用,但我试图了解在这里指定var / val的好处/原因是什么?为什么默认情况下不能使用var?
var a=max(10,20)
Scala版本是2.11.11,我正在尝试学习scala,可能我缺少一些基本概念。
答案 0 :(得分:2)
因为最佳做法是选择不可变的val
而不是可变的var
。
https://alvinalexander.com/scala/best-practice-prefer-immutable-variables-values-in-scala
val a = max(10,20)
在scala中,所有变量都必须是var或val。语言设计 就这样。
答案 1 :(得分:0)
Scala变量必须是var或val,不能推断它。