Function 这在斯卡拉意味着什么?

Function 这在斯卡拉意味着什么?,function,scala,Function,Scala,我是scala新手,今天我看到了一个我无法理解的函数定义: def f(x: Int): Int = x val func = (x: Int, y: Int, z: Int) => f(x) 那么在Scala中,定义func的语法是什么?对我来说,func只是一个接受三个参数的函数:func:(Int,Int,Int)=>Int=。为什么不将func定义为 def func(x: Int, y: Int, z: Int): Int = f(x) 这是为了提高效率吗?因为我们只需要对v

我是scala新手,今天我看到了一个我无法理解的函数定义:

def f(x: Int): Int = x
val func = (x: Int, y: Int, z: Int) => f(x)
那么在Scala中,定义
func
的语法是什么?对我来说,
func
只是一个接受三个参数的函数:
func:(Int,Int,Int)=>Int=
。为什么不将
func
定义为

def func(x: Int, y: Int, z: Int): Int = f(x)

这是为了提高效率吗?因为我们只需要对val求值一次。

func
被定义为一个值,该值包含一个具有该签名的函数,并用这样一个函数初始化。在将来的某个时候,在类方法中,您可以提供不同的函数。它将作为
func(1,2,3)
调用,并根据当时实际分配给
func
的函数返回结果


这为重写子类中的方法提供了一种替代方法。例如,您可能有一个状态机实现,它需要根据状态以不同的方式响应输入;这是通过更改接收函数的值来适当响应的可行方法。

请参阅已接受响应的最后一段。
func
val
。你不能重新分配。我只能为早衰辩护。你说得对。