Я хочу сделать что-то вроде этого:
lookup_value = :f
dict = {a: 20, b: 30, c: 40}
res = dict[lookup_value] | raise 'not found'
Как и в приведенном выше примере, если ключ не найден в словаре, я хочу вызвать ошибку.Я мог бы просто иметь дополнительную строку, которая говорит raise 'not found' unless res
, но я действительно хочу использовать поиск в выражении:
output = 'prefix' + (dict[lookup_value] | raise 'not found')
Проблема в том, чтоиспользование raise
таким образом не является допустимым синтаксисом.Я ищу способ, которым я могу вызвать ошибку в выражении, если поиск значения в хэше завершился неудачно, без необходимости объявления дополнительных переменных или предварительной проверки.
Ниже приведен действительный синтаксис и будетвыдает исключение, если значение не найдено, но возвращает nil, когда значение найдено:
res = (raise 'not found' unless dict[lookup_value])