gpt4 book ai didi

function - 将现有函数分配给 val?

转载 作者:行者123 更新时间:2023-12-01 04:38:49 24 4
gpt4 key购买 nike

Scala 的首页说

Functions are first-class objects. Compose them with guaranteed type safety. Use them anywhere, pass them to anything.

但我似乎无法将函数存储在 val 中,就像在 Scala 中存储其他一流对象一样。

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-expansion”将任何方法转换为函数:

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

关于function - 将现有函数分配给 val?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29133957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com