当前位置: 代码迷 >> 综合 >> scala 控制
  详细解决方案

scala 控制

热度:96   发布时间:2024-01-16 08:51:53.0

如下函数在线程中执行某段代码:


def runThread(block:()=>Unit){

      new Thread{

orverride def run(){block()}

}.start()

}

这段代码以类型为()=>Unit的函数的形式给出。不过,当你调用该函数时,需要写那么一段不优美的()=>:

runInThread(()=>println("Hi");Thread.sleep(1222);println("bye"))


要想在调用中省掉()=>,可以使用换名调用表示法:在参数声明和调用该函数参数的地方略去(),但保留=>:

def runInThread(block:=>Unit){

  new Thread{

orverride def run(){block()}

}.start()

}

这样一来,调用代码就变成了runInThread{println("")

;Thread.sleep(1222);println("bye")

}