gpt4 book ai didi

ruby-on-rails - Nils 和方法链

转载 作者:数据小太阳 更新时间:2023-10-29 06:48:11 25 4
gpt4 key购买 nike

我刚刚进入 ruby​​ 世界,我需要帮助。

假设bnil

我希望以下代码返回 nil 而不是“NoMethodError: undefined method”

a.b.c("d").e

我尝试的第一件事是重载 NilClass 的 missing_method 以简单地返回一个 nil。这是我想要的行为,但我不想如此打扰。

如果我能做这样的事情我会很高兴

SafeNils.a.b.c("d").e

所以这就像一种在本地重载 NilClass 行为的干净方法。

我很想听听一些想法或很好的资源来深入研究这个问题。只要它相当干净,我也对其他方法持开放态度。

非常感谢。

最佳答案

您可以使用 inline rescue :

x = a.b.c("d").e rescue nil
如果 bnil,则

x 将为 nil

或者,正如有人在该链接中评论的那样,您可以使用 andand gem (参见 docs):

x = a.andand.b.andand.c("d").andand.e

关于ruby-on-rails - Nils 和方法链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7235322/

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