我有一个任务:在消息“userStart”上启动计时器 5 秒,如果用户将在计时器之前发送答案 - >取消计时器。代码很简单,它可以工作,questin 是如何以 FP 方式制作它。据我了解,我应该使用“val”而不是“var”。我是 FP 的新手,所以如果有人能帮我解决这个问题,我会很高兴,或者推荐一些资源,我可以在其中找到如何做这些事情的简单示例。谢谢!
class Game extends Actor{
var actsCount:Int = 0
var timer:Option[Cancellable] = None
def startTimer(): Unit = {
timer = Some(context.system.scheduler.scheduleOnce(5 seconds, self, "userMissed"))
}
def receive = {
case "userStart" => startTimer()
sender() ! "do move"
case "userAct" =>
println("> user made his move")
actsCount += 1
if(timer.isDefined)
timer.get.cancel()
case "userMissed" => println("> user missed his move")
}
}