什么';这是在scala中进行嵌套map get调用的最干净的方法

什么';这是在scala中进行嵌套map get调用的最干净的方法,scala,Scala,在Scala中,我需要根据从另一个贴图获得的键,调用从贴图获取对象。“Java”是指: map1.get(map2.get(topic).get) // Could throw java.util.NoSuchElementException 但这看起来不像Scala的方式。Scala的做法是什么 如果两个查找都可能失败,并且您不关心可以使用哪个选项。flatMap: map2.get(topic).flatMap(m1.get(_)) 如果两个查找都可能失败,并且您不关心可以使用哪个选项。

在Scala中,我需要根据从另一个贴图获得的键,调用从贴图获取对象。“Java”是指:

map1.get(map2.get(topic).get) // Could throw java.util.NoSuchElementException

但这看起来不像Scala的方式。Scala的做法是什么

如果两个查找都可能失败,并且您不关心可以使用哪个选项。flatMap:

map2.get(topic).flatMap(m1.get(_))

如果两个查找都可能失败,并且您不关心可以使用哪个选项。flatMap:

map2.get(topic).flatMap(m1.get(_))

用一个字母来表示理解

for {
  m2 <- map2.get(topic)
  m1 <- map1.get(m2)
} yield {
  m1
}

用一个字母来表示理解

for {
  m2 <- map2.get(topic)
  m1 <- map1.get(m2)
} yield {
  m1
}