我对 Scala 很陌生,基本上我想将几个函数耦合到哈希图中的字符串。
但是我在subscribers.get(e.key)(e.EventArgs) 处收到错误消息;说明 Option[EventArgs => Unit] 不带参数...
示例代码:
object Monitor {
val subscribers = HashMap.empty[String, (EventArgs) => Unit ]
def trigger(e : Event){
subscribers.get(e.key)(e.EventArgs);
}
def subscribe(key: String, e: (EventArgs) => Unit) {
subscribers += key -> e;
}
}
最佳答案
由于 get 方法返回 Option,因此您可以在其上使用 'map':
subscribers.get(e.key).map(f => f(e.EventArgs))
甚至更短:
subscribers.get(e.key) map (_(e.EventArgs))
关于list - 如何从 Scala 中的 hashmap 调用函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8145460/