scala中的部分应用函数
我试图理解scala中部分应用的函数scala中的部分应用函数,scala,Scala,我试图理解scala中部分应用的函数 scala> val a=sum _ a: (Int, Int, Int) => Int = <function3> scala> a(1,2,3) res7: Int = 6 您刚刚经历了将方法转换为函数的eta扩展 您的方法是sum,您没有演示该方法,但该方法基于函数版本,必须: def sum(a:Int,b:Int,c:Int):Int = a + b + c 最后添加的下划线将方法转换为函数,结果的描述性类型签名
scala> val a=sum _
a: (Int, Int, Int) => Int = <function3>
scala> a(1,2,3)
res7: Int = 6
您刚刚经历了将
方法
转换为函数的eta扩展
您的方法是sum
,您没有演示该方法,但该方法基于函数版本,必须:
def sum(a:Int,b:Int,c:Int):Int = a + b + c
最后添加的下划线将方法转换为函数,结果的描述性类型签名显示:(Int,Int,Int)=>Int
通过这种方式,您可以将方法转换为一个函数值,该函数值可以分配给变量,并在应用程序逻辑中传递,从而向数据传递行为变化(在实例中添加).在这个用例中,方法和函数之间有什么区别?添加了关于为什么以及在方法/函数上下文中实现了什么的信息。@Avihoomaka Scala方法和函数之间的区别主要在于它们如何转换到各自的JVM世界。Scala方法与Java方法相同,它们要么作为实例的成员存在,要么存在于静态上下文中。而Scala函数本身是Function1
、Function2
或FunctionN
类的实例,具体取决于参数的数量。
def sum(a:Int,b:Int,c:Int):Int = a + b + c