Ruby:用于检查nilfalse条件语句的干净代码?

Ruby:用于检查nilfalse条件语句的干净代码?,第1张

概述我总是遇到这个 Ruby问题,我想写得更干净. 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"e 我总是遇到这个 Ruby问题,我想写得更干净.

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).区别:

>如果价值不存在,&amp ;.运算符将抛出,尝试将返回nil(优选与否?)(注意:尝试!也会抛出).>当级联尝试或&amp ;.他们也有不同的处理方式.这遵循以前的差异逻辑,尝试将返回nil,而&.将抛出因为false不知道没有方法:P

总结

以上是内存溢出为你收集整理的Ruby:用于检查nil / false条件语句的干净代码?全部内容,希望文章能够帮你解决Ruby:用于检查nil / false条件语句的干净代码?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1260067.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存