在scala线程中执行传递的函数参数

时间:2015-11-27 03:32:42

标签: java scala

我想要执行一个在scala中执行的传递函数。像Java世界中的Functor。

我是javascript,我会这样做

Molo

我在下面的scala中尝试过相同的(但是使用Java Thread),它不能工作

function g(f, data) { 
     f() 
}

g(function(){ 
   console.log('I must be printed')
  }, 1000)

输出

完成g 我在线程地狱内打印

但是没有执行传递的函数。

1 个答案:

答案 0 :(得分:0)

val task = new TimerTask {
  override def run(): Unit = {
    println("I'm printed in g inside thread hell")
    f("")
  }
}

如果你想执行函数应该像:f()

但是对于(id : String) => {println("I must be printed in g.")}这个函数,它应该需要一个参数来执行,例如:f(parameter)