找不到Scala:值错误

找不到Scala:值错误,scala,Scala,我试图在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 ..... Scala版本是2

我试图在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
.....

Scala版本是2.11.11,我正在尝试学习Scala,可能我缺少一些基本概念。

因为最佳实践是选择不可变的
val
s,而不是可变的
var
s


在scala中,所有变量都必须是var或val语言设计的 就这样


Scala变量必须是var或val,不能推断。

错误在于您没有将
a
声明为
var
val
var
不能为默认值,因为这违反了最佳实践
val
可以是默认值(使用显式
var
),但它的设计不同。什么是“推断”?类型可以推断。但是
var a=max(10,20)
var a=max(10,20)
都是可能的。在
var a=max(10,20)
之后,你可以做
a=100
但是
val a=max(10,20)
之后将无法编译。在赋值时自动引入变量似乎是个好主意,但它容易出现范围问题。想象一下这样的代码:
if(something){v=0}else{v=1};println(v)
。这也会使许多打字错误被忽视,比如
name=“A”;namo=“B”
。这只是scala语法:值必须定义为
val a=…
var a=max(10,20)
val a = max(10,20)