class SendResponse(request: Request, val responseSend: Send, val responseAsString: Option[String], val onCompleteCallback: Option[Send => Unit]) extends Response(request) { ...... // 指定输入参数onCompleteCallback override def onComplete: Option[Send => Unit] = onCompleteCallback }
Scala中的Unit类似于Java中的void
Send => Unit 表示一个方法。该方法接收Send类实例,然后执行一段代码逻辑。
Scala是函数式编程语言,因此可以把一个函数作为一个参数传给另一个函数,也可以把函数作为结果返回。这里的onComplete方法就应用了第二种用法,也就是把函数赋值给另一个函数,并作为结果返回。这样做的好处在于,你可以灵活地变更onCompleteCallback来实现不同的回调逻辑。