Function 是否将现有函数分配给val?

Function 是否将现有函数分配给val?,function,scala,functional-programming,Function,Scala,Functional Programming,Scala的头版说 函数是一级对象。用保证类型组合它们 安全。在任何地方使用,传递给任何人 但我似乎无法像在Scala中使用其他一流对象那样,在val中存储函数 scala> def myFunction = { println("hello world") } myMethod: Unit scala> myFunction hello world scala> val myVal = myFunction hello world myVal: Unit = () sc

Scala的头版说

函数是一级对象。用保证类型组合它们 安全。在任何地方使用,传递给任何人

但我似乎无法像在Scala中使用其他一流对象那样,在
val
中存储函数

scala> def myFunction = { println("hello world") }
myMethod: Unit

scala> myFunction
hello world

scala> val myVal = myFunction
hello world
myVal: Unit = ()

scala> myVal

scala>

正确的方法是什么?

因此,函数是第一类值,但是,
def
创建的是方法,而不是函数。您可以使用“eta扩展”将任何方法转换为函数,方法名称后面添加

scala> def myFunction = { println("hello world") }
myFunction: Unit

scala> myFunction _
res0: () => Unit = <function0>

scala> res0()
hello world

scala> val myVal = myFunction _
myVal: () => Unit = <function0>

scala> myVal
res2: () => Unit = <function0>

scala> myVal()
hello world
scala>def myFunction={println(“hello world”)}
我的职能:单位
scala>myFunction_
res0:()=>单位=
scala>res0()
你好,世界
scala>val myVal=myFunction_
myVal:()=>单位=
scala>myVal
res2:()=>单位=
scala>myVal()
你好,世界
您可以通过使用查看更多信息