在
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#调用(或使用类,实例或全局变量),这也将起作用.