假设我有
var mp = Map[String,String]()
.....
val n = mp("kk")
如果密钥"kk“不存在,上面的代码会抛出运行时错误。
我期望n在key不存在的情况下为空。如果key不存在,我希望n为null。
在scala中使用简短的代码示例来处理这种情况的正确方法是什么?
发布于 2011-07-02 23:20:02
首先,您可能并不真正想要null,因为这几乎总是Scala中糟糕编码的标志。您需要的是n的类型为OptionString,这表示该值要么是字符串,要么是缺失的。正确的方法是在地图上使用.get()方法
val n = mp.get("kk")
如果您确实需要null (例如,用于与Java库的互操作),则可以使用.getOrElse()
val n = mp.getOrElse("kk", null)
发布于 2018-05-16 02:13:33
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
https://stackoverflow.com/questions/6557794
复制相似问题