gpt4 book ai didi

ruby - 如果在 Ruby 中评估返回 nil,我如何引发异常?

转载 作者:行者123 更新时间:2023-12-04 14:55:52 25 4
gpt4 key购买 nike

我想做一些类似的事情:

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])

最佳答案

dict.fetch(lookup_value)就像 dict[lookup_value] ,但如果 key 丢失,则会引发。

您还可以通过一些调整来大致完成问题中的内容:dict[lookup_value] || raise('not found') -- 这让您可以控制异常。

关于ruby - 如果在 Ruby 中评估返回 nil,我如何引发异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50481505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com