使用getOrElse返回默认值

时间:2016-03-05 11:44:32

标签: scala

在Scala中,我有一个哈希

var unigram = new HashMap[String, Int]

我想从哈希中获取元素的值,或者如果元素不存在,我想得到0

所以我试图像这样使用getOrElse

unigram("a") getOrElse 0

但是,我得到:"Cannot resolve symbol."

我如何错误地使用它? 我可以用什么而不是它?

2 个答案:

答案 0 :(得分:6)

它应该是unigram getOrElse("a",0) 您不能只调用apply方法,然后在其上运行getOrElse,因为apply已经检索了该值。

如果您致电unigram("a"),以供参考,它实际上正在调用仅返回该元素的apply方法unigram.apply("a")

答案 1 :(得分:3)

你也可以ungram("bar") 现在{{1}}返回0。