gpt4 book ai didi

ruby-on-rails - 尝试方法的更好替代方法

转载 作者:数据小太阳 更新时间:2023-10-29 08:16:13 24 4
gpt4 key购买 nike

我想要一段干净的代码,但我觉得这感觉很笨拙。

有更好的方法吗?

User.try(:profile).try(:settings).try(:card).try(:options)

如果我删除 try 方法,我会得到一个 nil 方法错误。

是否有另一段代码做类似的事情:

User.try(:profile,:settings, :card, :options)

最佳答案

从 ruby​​ 2.3.0 开始,您可以使用 &. 方法代替 try:

User&.profile&.settings&.card&.options

但是你应该避免这样的事情。

当您向可能返回 nil 的对象发送消息时,或者当对象不响应该消息时,这是您应该自行解决的问题。使用 try 只会加剧问题,就像 nil-checking 一样。 编写行为一致的一致接口(interface)。

关于ruby-on-rails - 尝试方法的更好替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54949112/

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