我可以使用Scala选项来避免以下NoSuchElementException吗?

时间:2011-08-15 22:37:31

标签: scala

我有以下HashMap

val lastAsk = new HashMap[String, Quote]

引用对象有price()方法

以下

lastAsk(lastSecurity).price
如果lastSecurity不是键,则

抛出NoSuchElementException。要修复我可以使用包来检查然后返回-1如果找不到密钥。然而,感觉就像黑客可以在这里使用Option来设计更优雅的解决方案吗?

1 个答案:

答案 0 :(得分:11)

Map方法get返回Option,因此您可以这样写:

lastAsk get lastSecurity map (_ price) getOrElse 0

您可以在代码中进一步使用选项,或者在选项方法getOrElse的帮助下提供一些默认值(在我的示例中为0)。