在Python的Scala转换中作为函数传递方法

2024-04-26 07:45:39 发布

您现在位置:Python中文网/ 问答频道 /正文

在python中,可以将函数传递到如下方法:

def reducer:
   doStuff

run(reducer)

Scala中是否有类似的机制?我可以定义一个名为reducer的特性并实现一个方法。然后在run中传递trait的名称,然后调用方法?你知道吗


Tags: 方法函数run名称定义def特性机制
1条回答
网友
1楼 · 发布于 2024-04-26 07:45:39

是的,有这样一件事:

def run(block: Unit => Unit) = {
  println("entering run")
  block()
  println("exiting run")
}

def block() = println("I'm block")

run(block)
// entering run
// I'm block
// exiting run

请注意,您可能需要更改运行的签名:

def run(f: Int => Int) {
  println("before call: 1, after call " + f(1))
}

def f(x: Int) = x + 1
run(f)
// before call: 1, after call 2

相关问题 更多 >