我有以下Scala 2.12.x代码:
object Myapp extends App {
val bootstrapper = new Bootstrapper()
val config = bootstrapper.bootstrap(args)
}
class Bootstrapper {
def bootstrap(val args : Array[String]) : Config = {
null
}
}
以上导致Bootstrapper
课程内部出现编译错误,抱怨args
为val
:
identifier expected but 'val' found.
当我将val args : Array[String]
更改为args : Array[String]
时,编译器错误就会消失。的为什么吗
答案 0 :(得分:4)
在Scala方法中,参数始终是val,与Java中不同,您必须将它们明确标记为final
。这就是将方法参数标记为val
不属于语法的原因。