如果这是一个非常简单的问题,我很抱歉。有人可以解释案例语法语句如何作为receiveWithin的函数参数执行。我迷失了,因为我认为参数应该是()。
receiveWithin ((closing.getTime() - new Date().getTime())) {
case Offer(bid, client) =>
if (bid >= maxBid + bidIncrement) {
if (maxBid >= minBid) maxBidder ! BeatenOffer(bid)
maxBid = bid; maxBidder = client; client ! BestOffer
} else {
client ! BeatenOffer(maxBid)
}
case Inquire(client) =>
client ! Status(maxBid, closing)
case TIMEOUT =>
if (maxBid >= minBid) {
val reply = AuctionConcluded(seller, maxBidder)
maxBidder ! reply; seller ! reply
} else {
seller ! AuctionFailed
}
receiveWithin(timeToShutdown) {
case Offer(_, client) => client ! AuctionOver
case TIMEOUT => running = false
}
}
类Actor的receiveWithin方法将时间跨度作为参数 以毫秒为单位,以及函数处理邮箱中的邮件。 该功能由一系列案例给出,每个案例都指定一个模式和 对与模式匹配的消息执行的操作。 receiveWithin method选择邮箱中与其中一个匹配的第一条消息 模式并对其应用相应的操作。