方法:1
2
3
4
5scala> def add(x:Int, y: Int) = x + y
add: (x: Int, y: Int)Int
scala> add(1, 2)
res0: Int = 3
函数:1
2
3
4
5
6
7scala> val add_f = (x: Int, y: Int) => x + y
add_f: (Int, Int) => Int = <function2>
// 根据内容可以看出add_f是一个函数Function
scala> add_f(1, 2)
res1: Int = 3
上面 ‘=’号右边的内容 (x: Int, y: Int) => x + y是一个函数体,
方法只能用 def 接收,函数可以用 def 接收,也可以用 val 接收。
当函数用 def 来接收之后,不再显示为 function ,转换为方法。
方法可以省略参数,函数不可以。 函数可以作为方法的参数。 看下面的例子:1
2
3
4
5scala> val a = () => 100
a: () => Int = <function0>
scala> val a = => 100
<console>:1: error: illegal start of simple expression
看这里: val a = => 100 // 当函数参数为空时报错