【问题标题】:Scala getting a value from a map when unsure if the map holds the valueScala在不确定地图是否持有该值时从地图中获取值
【发布时间】:2017-05-08 14:56:13
【问题描述】:

在 scala 中,我有一张地图。

我想从我的地图上请求一个对象 - 比如火车。然后我想在我的 Train 上调用“getNumberOfCarriages”方法。

如果我不知道地图是否有键值“Thomas”的条目,我如何在 scala 中安全地查询车厢数,或返回一些默认值(为了示例, 0?)

我怎么称呼

myMap.get("Thomas").getNumberOfCarriages()

我见过getOrElse的方法,但不确定它是否适用于问题?

【问题讨论】:

  • myMap.get("Thomas").map(getNumberOfCarriages) 返回Option[Int]。如何解释取决于您和您的问题。继续使用Option 或通过回退到默认值来获得价值。

标签: scala


【解决方案1】:

您可以做的一件事是将lift 传递给Option,然后将fold 传递给它,以获取托架数或None 时的默认值。

myMap.lift("Thomas").fold(0)(_.getNumberOfCarriages())

【讨论】:

  • 谢谢,这就是我要找的。当它允许我时我会接受
猜你喜欢
  • 1970-01-01
  • 2022-01-18
  • 2013-05-20
  • 2011-03-09
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 2016-04-21
相关资源
最近更新 更多