Могу ли я использовать параметры Scala, чтобы избежать следующего исключения NoSuchElementException? - PullRequest
5 голосов
/ 16 августа 2011

У меня есть следующая HashMap

val lastAsk = new HashMap[String, Quote]

Объекты цитирования имеют метод price ()

Следующее

lastAsk(lastSecurity).price

генерирует исключение NoSuchElementException, если lastSecurity не является ключом. Для исправления я мог бы использовать проверку содержимого, а затем вернуть -1, если ключ не найден. Однако это похоже на хак, могу ли я использовать Option здесь, чтобы разработать более элегантное решение?

1 Ответ

11 голосов
/ 16 августа 2011

Карта имеет метод get, который возвращает Option, поэтому вы можете написать что-то вроде этого:

lastAsk get lastSecurity map (_ price) getOrElse 0

Вы можете использовать опцию далее в своем коде или предоставить некоторыепо умолчанию с помощью метода опции getOrElse (в моем примере это 0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...