我想做一些类似的事情:
lookup_value = :f
dict = {a: 20, b: 30, c: 40}
res = dict[lookup_value] | raise 'not found'
Run Code Online (Sandbox Code Playgroud)
如上面的例子,如果在字典中找不到键,我想引发一个错误。我可以有一个额外的行,上面写着raise 'not found' unless res,但我真的想在表达式中使用查找:
output = 'prefix' + (dict[lookup_value] | raise 'not found')
Run Code Online (Sandbox Code Playgroud)
问题在于raise以这种方式使用不是有效的语法。我正在寻找一种方法,如果哈希中的值查找失败,我可以在表达式中引发错误,而无需声明其他变量或事先进行检查。
以下是有效的语法,如果未找到值将抛出异常,但在找到值时返回 nil:
res = (raise 'not found' unless dict[lookup_value])
Run Code Online (Sandbox Code Playgroud)
dict.fetch(lookup_value)就像dict[lookup_value],但如果密钥丢失,则会引发。
您还可以通过一些调整来大致完成您在问题中的操作:dict[lookup_value] || raise('not found')-- 这使您可以控制异常。
| 归档时间: |
|
| 查看次数: |
1569 次 |
| 最近记录: |