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. 当然,这隐藏了所有类型的错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |