在Scala中,我有一个哈希
var unigram = new HashMap[String, Int]
我想从哈希中获取元素的值,或者如果元素不存在,我想得到0
。
所以我试图像这样使用getOrElse
:
unigram("a") getOrElse 0
但是,我得到:"Cannot resolve symbol."
我如何错误地使用它? 我可以用什么而不是它?
答案 0 :(得分:6)
它应该是unigram getOrElse("a",0)
您不能只调用apply
方法,然后在其上运行getOrElse
,因为apply
已经检索了该值。
如果您致电unigram("a")
,以供参考,它实际上正在调用仅返回该元素的apply
方法unigram.apply("a")
。
答案 1 :(得分:3)
你也可以ungram("bar")
现在{{1}}返回0。