评估Ruby中的Array#join的许多布尔表达式

前端之家收集整理的这篇文章主要介绍了评估Ruby中的Array#join的许多布尔表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Ruby中,您可以使用 Array#join将多个字符串与可选的分隔符简单连接在一起.
[ "a","b","c" ].join        #=> "abc"
[ "a","c" ].join("-")   #=> "a-b-c"

我想知道是否有很好的语法糖做一些类似于一堆布尔表达式的事情.例如,我需要&一大堆表达在一起.然而,将使用哪些表达式由用户输入确定.所以,而不是做一堆

cumulative_value &&= expression[:a] if user[:input][:a]

我想首先根据输入收集所有的表达式,然后&&他们一起在一起.就像是:

be1 = x > y
be2 = Proc.new {|string,regex| string =~ regex}
be3 = z < 5 && my_object.is_valid?
[be1,be2.call("abc",/*bc/),be3].eval_join(&&)

缺省情况下是否有Ruby设备?我只想要一些合成糖,使代码更清洁,如果可能的话.

解决方法

尝试 Array#all?.如果arr是一个布尔阵列,这本身就是这样的:
arr.all?

如果arr中的每个元素都为true,则返回true,否则返回false.

您可以以相同的方式使用Array#any?加入||上的数组,也就是说,如果数组中的任何元素为真,否则返回false.

只要arr是Procs的一个数组,只要确保将正确的变量传递给块中的Proc#调用(或使用类,实例或全局变量),这也将起作用.

猜你在找的Ruby相关文章