0
我想要執行一個在scala中執行的函數。像Java世界中的Functor。在scala線程內部執行傳遞的函數參數
我的JavaScript,我會做它作爲
function g(f, data) {
f()
}
g(function(){
console.log('I must be printed')
}, 1000)
我在斯卡拉試圖與下面相同的,(但Java線程),它不會工作
object FunctionProgInHamiltonRoad {
def g(f: (String) => Unit): String = {
val task = new TimerTask {
override def run(): Unit = {
println("I'm printed in g inside thread hell")
f
}
}
new Thread(task).start()
println("finishing off g")
"printed in g"
}
def main(args: Array[String]) {
g((id : String) => {println("I must be printed in g.")})
}
}
輸出
整理掉g 我在g線裏面打印地獄
但是傳遞的函數不會被執行。