我对 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/

10-14 11:58