【发布时间】:2012-12-28 23:36:29
【问题描述】:
在 Ruby 中,您可以使用 Array#join 通过可选的分隔符简单地将多个字符串连接在一起。
[ "a", "b", "c" ].join #=> "abc"
[ "a", "b", "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 中有这样的设备吗?如果可能的话,我只是想要一些语法糖来使代码更干净。
【问题讨论】:
-
您希望每个部分都接受参数并动态更改,还是它们是先前确定的?例如,
be1没有意义,除非已经给出x和y,在这种情况下,它将是true或false的常量,但be2是一个 proc,它总是评估到一个真实的价值,这也是一个常数,除非你将它应用于一些论点,否则它没有多大意义。看来你正在混合这些。
标签: ruby syntactic-sugar boolean-expression