等于scala中的自由函数定义

等于scala中的自由函数定义,scala,function,Scala,Function,我已经开始学习Scala,并注意到以下两个定义 def a(m:Int){ println("-" * m) } //> a: (m: Int)Unit 使用= def a(m:Int) = { println("-" * m) } //> a: (m: Int)Unit 可以使用a(2) 我注意到第一个函

我已经开始学习Scala,并注意到以下两个定义

def a(m:Int){
    println("-" * m)
}                                         //> a: (m: Int)Unit
使用
=

def a(m:Int) = {
    println("-" * m)
}                                         //> a: (m: Int)Unit
可以使用
a(2)

我注意到第一个函数总是被视为Int=>Unit 即使它返回了一些东西

问:这两个定义在内部有什么不同


(这可能很傻,但我不知道如何用谷歌搜索)

如果你去掉等号,那么返回类型总是
Unit
。如果使用等号,则返回类型可以是其他类型

equals-free版本被称为“过程”语法(过程是执行某些任务的函数,而不是计算为某个值的表达式)。但是,现在不鼓励使用这种语法,将来也不允许使用这种语法;看