加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby一个衬垫,用于方法undefined或nil

发布时间:2020-12-17 04:02:13 所属栏目:百科 来源:网络整理
导读:我很好奇是否有更短的方法来检查是否在对象上定义了一个方法,如果是,则检查它是否为零.我试过了: if !obj.respond_to?(:meth) || obj.meth.nil? 但它看起来很长很难看. 解决方法 快速又脏又简洁: unless (obj.meth rescue nil) ...end 如果向obj发送meth失
我很好奇是否有更短的方法来检查是否在对象上定义了一个方法,如果是,则检查它是否为零.我试过了:

if !obj.respond_to?(:meth) || obj.meth.nil?

但它看起来很长很难看.

解决方法

快速又脏又简洁:

unless (obj.meth rescue nil)
  ...
end

如果向obj发送meth失败(例如因为缺少该方法),则表达式取值为nil.

当然,这隐藏了所有类型的错误.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读