在某些情况下,我发现自己需要在一些ruby脚本中编写一个相当冗长的if语句.
声明看起来像这样:
if long_var_name == 0 && very_different_name == 0 && other_third_var == 0 && additional_variable == 0 && name_five == 0 && longest_variable_name_six == 0
# (possibly even more conditions)
# do stuff here...
end
Run Code Online (Sandbox Code Playgroud)
似乎必须有一种更优雅的方式来做到这一点.
问题是,if并且and用谷歌作为基本的英语单词进行研究并不容易.所以我空手而归.
有没有人知道缩短这种情况的方法?当你有更多的东西时,它可能成为一个噩梦.
注意:我找到了一个针对OR类似情况的聪明解决方案:
如果你有一个数组并且专门测试为零,你可以这样做:
vars1 = [0,0,3,0,0]
vars2 = [0,0,0,0,0]
vars1.all?(&:zero?) # false
vars2.all?(&:zero?) # true
Run Code Online (Sandbox Code Playgroud)
编辑:基于OP增加的条件,为值赋予不同的名称:
if [long_var_name_1,long_var_name_2,long_var_name_3].all?(&:zero?)
# do stuff here...
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
298 次 |
| 最近记录: |