首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果在scala中找不到key,如何使用key访问map的值?

如果在scala中找不到key,如何使用key访问map的值?
EN

Stack Overflow用户
提问于 2011-07-02 23:13:32
回答 2查看 41.8K关注 0票数 25

假设我有

代码语言:javascript
复制
var mp = Map[String,String]()

.....

val n = mp("kk")

如果密钥"kk“不存在,上面的代码会抛出运行时错误。

我期望n在key不存在的情况下为空。如果key不存在,我希望n为null。

在scala中使用简短的代码示例来处理这种情况的正确方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-02 23:20:02

首先,您可能并不真正想要null,因为这几乎总是Scala中糟糕编码的标志。您需要的是n的类型为OptionString,这表示该值要么是字符串,要么是缺失的。正确的方法是在地图上使用.get()方法

代码语言:javascript
复制
val n = mp.get("kk")

如果您确实需要null (例如,用于与Java库的互操作),则可以使用.getOrElse()

代码语言:javascript
复制
val n = mp.getOrElse("kk", null)
票数 56
EN

Stack Overflow用户

发布于 2018-05-16 02:13:33

代码语言:javascript
复制
val conversionRatios:mutable.Map[String, Double] = mutable.Map[String, Double](
    "USD" -> 2.0,
    "CNY" -> 3.0
  )

val currentRate = conversionRatios.apply(key) // it will return you value or NoSuchElementException will be thrown
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6557794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档