在Scala中省略等号的情况下,方法会变成什么?

在Scala中省略等号的情况下,方法会变成什么?,scala,Scala,我刚刚发现在Scala中定义方法时不使用=符号是可能的 def someMethod(a: Int) { println(a) println("---------") } 上面的版本与参数列表后面带等号的版本有什么区别?开头的大括号{?这样的方法定义称为过程。这是单元返回方法的特殊语法: def someMethod(a: Int): Unit = { println(a) println("---------") } 这不是推荐的语法。 Martin Odersky认为包

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

def someMethod(a: Int) {
  println(a)
  println("---------")
}

上面的版本与参数列表后面带等号的版本有什么区别?开头的大括号{?

这样的方法定义称为过程。这是单元返回方法的特殊语法:

def someMethod(a: Int): Unit = {
  println(a)
  println("---------")
}
这不是推荐的语法。
Martin Odersky认为包含此语法是一个错误的决定。请参阅。

此类方法定义称为过程。这是单元返回方法的特殊语法:

def someMethod(a: Int): Unit = {
  println(a)
  println("---------")
}
这不是推荐的语法。
Martin Odersky认为包含这种语法是一个错误的决定。请参阅。

Huh,Scala Style Guide建议,相反,对于void方法总是使用较短的语法:opsss,Scala是否有3种类型的方法:方法本身、函数和过程?我只知道前2种。@MariusKavansky:过程声明是na我知道方法声明的特殊语法。这只是一个返回类型为Unit的常规方法。@esycat:Martin Odersky本人反对使用equal less Unit返回语法的建议是最近提出的。相反,我确信过程语法不好,这是投票支持答案的众多原因之一。嗯,Scala风格指南推荐我相反,要始终对void方法使用较短的语法:opsss,Scala是否有3种类型的方法:方法本身、函数和过程?我只知道前2种。@MariusKavansky:procedure declaration是方法声明的特殊语法的名称。它只是一个带有返回类型单位的常规方法。@esycat:reMartin Odersky本人对使用equal-less单元返回语法的赞扬是最近的一次。相反,我确信过程语法是糟糕的,这是获得答案的众多原因之一。