为什么函数的参数不能定义为val
或var
?
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
答案 0 :(得分:0)
我正在复制粘贴来自 Scala第3版编程
的文本“方法的任何参数都可以在方法中使用.Scala中方法参数的一个重要特征是它们是vals,而不是vars。原因参数是vals,因为val更易于推理。你不需要'进一步确定是否重新分配val,因为你必须使用var。“
答案 1 :(得分:0)
一个人不能在方法参数中使用var或val,因为方法参数默认是val,所以没有理由说val name:type。
方法参数默认为val,因为var参数容易出错。