为什么函数的参数不能声明为val或var

时间:2017-11-16 19:41:53

标签: scala

为什么函数的参数不能定义为valvar

scala> def add2(val x:Int) = x+2
<console>:1: error: identifier expected but 'val' found.
def add2(val x:Int) = x+2
         ^

scala> def add3(var x:Int) = x+3
<console>:1: error: identifier expected but 'var' found.
def add3(var x:Int) = x+3
         ^

scala> def add2(x:Int) = x+2
add2: (x: Int)Int

2 个答案:

答案 0 :(得分:0)

我正在复制粘贴来自 Scala第3版编程

的文本
  

“方法的任何参数都可以在方法中使用.Scala中方法参数的一个重要特征是它们是vals,而不是vars。原因参数是vals,因为val更易于推理。你不需要'进一步确定是否重新分配val,因为你必须使用var。“

答案 1 :(得分:0)

一个人不能在方法参数中使用var或val,因为方法参数默认是val,所以没有理由说val name:type。

方法参数默认为val,因为var参数容易出错。