
var a can be nila.value can also be nila.value has possible true or false valueif (not a.nil?) && (not a.value.nil?) && a.value == false puts "a value is not available"else puts "a value is true"end
问题是条件语句太笨拙而且难以阅读.
如何改进检查nil和false条件语句?
谢谢,我是一个Ruby新手
解决方法 Ruby on rails有一个名为try的扩展,它允许你编写:if a.try(:value) == false
这很干净.没有尝试,你可以写
if a && a.value == false
如果a.value为nil,则不是false,所以可以:)
如果有可能没有定义a.value(会引发异常),我会写如下:
if a && a.respond_to?(:value) && a.value == false
[更新:ruby2.3之后]
从ruby 2.3开始,版本更短:
if a&.value == false
这几乎相当于a.try(:value)(但是纯粹的ruby).区别:
>如果价值不存在,& ;.运算符将抛出,尝试将返回nil(优选与否?)(注意:尝试!也会抛出).>当级联尝试或& ;.他们也有不同的处理方式.这遵循以前的差异逻辑,尝试将返回nil,而&.将抛出因为false不知道没有方法:P
总结以上是内存溢出为你收集整理的Ruby:用于检查nil / false条件语句的干净代码?全部内容,希望文章能够帮你解决Ruby:用于检查nil / false条件语句的干净代码?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)