Scala 这个for循环作为方法调用的等价物是什么?

Scala 这个for循环作为方法调用的等价物是什么?,scala,Scala,鉴于此代码: for { evListeners <- eventListeners.get(manifest.erasure.asInstanceOf[Class[Any]]) listener <- evListeners } listener.asInstanceOf[A => Unit].apply(event) 假设eventListeners是某种Map[Class[Any],Seq[Any]],您必须为每个调用添加一个,因为该映射上的get为您提供了一个

鉴于此代码:

for {
  evListeners <- eventListeners.get(manifest.erasure.asInstanceOf[Class[Any]])
  listener <- evListeners
} listener.asInstanceOf[A => Unit].apply(event)

假设
eventListeners
是某种
Map[Class[Any],Seq[Any]]
,您必须为每个
调用添加一个
,因为该映射上的
get
为您提供了一个
选项[Seq[Any]

val evListeners = eventListeners.get(manifest.erasure.asInstanceOf[Class[Any]])
evListeners.foreach(_.foreach(_.asInstanceOf[A => Unit].apply(event)))

假设
eventListeners
是某种
Map[Class[Any],Seq[Any]]
,您必须为每个
调用添加一个
,因为该映射上的
get
为您提供了一个
选项[Seq[Any]

val evListeners = eventListeners.get(manifest.erasure.asInstanceOf[Class[Any]])
evListeners.foreach(_.foreach(_.asInstanceOf[A => Unit].apply(event)))

哦,这是有道理的。我猜foreach在
选项上
只迭代非
项,那么?没错<代码>一些(x)。foreach(f)
执行
f(x)
无。foreach(f)
不执行任何操作。哦,这很有意义。我猜foreach在
选项上
只迭代非
项,那么?没错
Some(x)。foreach(f)
执行
f(x)
无。foreach(f)
不执行任何操作。