加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 20:02:02 所属栏目:百科 来源:网络整理
导读:在 Ruby中,您可以使用 Array#join将多个字符串与可选的分隔符简单连接在一起. [ "a","b","c" ].join #= "abc"[ "a","c" ].join("-") #= "a-b-c" 我想知道是否有很好的语法糖做一些类似于一堆布尔表达式的事情.例如,我需要一大堆表达在一起.然而,将使用哪些表
在 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#调用(或使用类,实例或全局变量),这也将起作用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读