是否有可能在Scala中獲得部分函數的域?如何在Scala中獲得部分函數的域?
例:
val f: PartialFunction[Int, Unit] = {
case 1 => println("This is 1")
case 2 => println("This is 2")
}
有沒有什麼辦法讓這樣的:
val list = f.getDomain
這顯示值1和2?
更新:我試圖建立一個通知系統(事件總線)。 認購人將是這樣的:
class SomeSubscriber extends Subscriber {
notifications {
case LoginEvent(date) => println("Login on " + date)
case LogoutEvent(date) => println("Logout on " + date)
case e: Notification[Any] => async {
println("Other notification: " + e)
ui {
println("UI in async! " + e)
}
}
}
}
在我NotiticationService(事件調度),我要訪問每一個「通知」塊中聲明,所以我可以推通知給用戶的事件。我怎樣才能做到這一點?
在此先感謝。
我看不出這是怎麼回事(無論如何都是合理的計算量)考慮一個只在素數上定義的部分函數(所以getDomain需要返回所有素數) – 2012-03-04 21:49:57
你在那裏得到了一個點。我以爲Scala編譯器能夠以某種方式幫助我(在我的示例中應該很容易檢索域)。謝謝 – d4rkang3l 2012-03-05 06:43:14
如果您想訪問域,請使用「Map」代替 – ziggystar 2012-03-05 09:35:07