gpt4 book ai didi

scala - 你能在 Scala 中部分绑定(bind)一个 0 元函数吗?

转载 作者:行者123 更新时间:2023-12-01 09:08:51 27 4
gpt4 key购买 nike

我试图创建一个像这样的函数指针:

def foo(a: String): Unit = { println(s"a = $a") }

val parameter = "some parameter"
// Here I'd want something like foo(parameter) _, but that doesn't work.
val partialFooWithParameter: () => Unit = ???

有什么我可以用它替换 ??? 的东西吗?或者这在 Scala 中是不可能的?

更新:似乎答案是否定的。

最佳解决方案是函数字面量:

def partialFooWithParameter: () => Unit = () => foo(parameter)

虽然它仍然不是部分应用的函数:

def bar(a: String, b: String): String = a + b
// Partially-applied.
val partial: (String => String) = bar("a", _)
// Function literal.
val literal: (String => String) = b => bar("a", b)

最佳答案

我想这就是您要找的。您的某些类型不正确。

def foo(a: String): Unit = { println(s"a = $a") }

val parameter = "some parameter"
// Here I'd want something like foo(parameter) _, but that doesn't work.
def partialFooWithParameter: () => Unit = () => foo(parameter)

关于scala - 你能在 Scala 中部分绑定(bind)一个 0 元函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28699081/

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