gpt4 book ai didi

scala:如何在不调用的情况下在某处传递 0-arg 函数?

转载 作者:行者123 更新时间:2023-12-02 07:32:11 25 4
gpt4 key购买 nike

def myfunc():Int = 10
class FuncUser( val func:()=>Int )
val i = new FuncUser( myfunc )

这失败了,因为 myfunc 被立即评估——它的类型是 Int,而不是 ()=>Int如何直接将 myfunc 传递给 FuncUser 构造函数?

此外,这有效:

val y4:()=>Int = myfunc
val j = new FuncUser( y4 )

但我对为什么第一行成功感到困惑?为什么 myfunc 没有在第二个示例中立即求值?

最佳答案

您使用部分应用程序将方法(它不是真正的函数)myfunc“提升”为Function0:

val i = new FuncUser(myfunc _)

关于scala:如何在不调用的情况下在某处传递 0-arg 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20713049/

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