我是 Scala 的新手,能够将函数传递给其他函数非常简洁——但是我可以将任意函数引用传递给另一个函数吗?所述功能参数的元数将是固定的(也就是说,我也很好奇您是否也可以传递具有任意元数的函数)。我一直被类型错误绊倒。我试过使用Any
,但似乎没有帮助。
例如,我有以下代码:
class CodeRunner(val user_defined: (Int) => Unit) {
def run(input: Int) = {
user_defined(input)
}
}
def arbitrary_code(input: Int) = { println("Running with input " + input) }
val d1 = new CodeRunner(arbitrary_code)
d1.run(4)
我得到:
Running with input 4
现在,假设我想传递以下函数:
def arbitrary_code(input: String) = { println("Running with input " + input) }
我怎样才能改变我的CodeRunner
班级来处理这两个问题?