scala 定时器
假如我们要开发一个定时器,该定时器每秒钟执行一定的动作,我们如何把要执行的动作传给定时器?最直观的回答是:传一个实现动作的函数(function)
object Helloworld {
def oncePerSecond(callback:(Int) => Unit): Unit ={
val a = 111
while (true){
callback(a)
Thread sleep 1000
}
}
def sendinfo(i:Int): Unit ={
println("hello"+i)
}
def main(args: Array[String]): Unit = {
oncePerSecond(sendinfo)
}
}
其中callback是一个int => Unit的函数名,oncePerSecond接收一个函数作为参数,而不是这个函数的结果,因此该函数sendinfo传入时不需要带参数,如果带参数则编译器会将其理解为这个函数的结果,也就是Unit
浙公网安备 33010602011771号