如果Scala中遗漏了等号,方法会变成什么?

Ala*_*ano 1 scala

我刚刚发现=在Scala中定义方法时可能不使用符号.

def someMethod(a: Int) {
  println(a)
  println("---------")
}
Run Code Online (Sandbox Code Playgroud)

上面的版本与参数列表和开头花括号之后的等号之间有什么区别{

sen*_*nia 16

调用这样的方法定义procedure.这是 - Unit返回方法的特殊语法:

def someMethod(a: Int): Unit = {
  println(a)
  println("---------")
}
Run Code Online (Sandbox Code Playgroud)

这不是推荐的语法.Martin Odersky认为包含这种语法是一个错误的决定.参见Keynote - Scala with Style第45章.

  • +1用于阻止使用过程语法 (6认同)
  • @esycat:建议不要使用Martin Odersky自己使用相同的`Unit`返回语法,这是最近的一个. (2认同)