如下函数在线程中执行某段代码:
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")