有没有办法对一组陈述进行分组?

时间:2016-03-08 23:35:11

标签: ruby

我正在研究一些重构工具。如果我可以通过它的定义替换一些方法调用会很好,这通常是一个语句块。例如,原始代码可能是:

some_condition ? a : b
def a
  ...
  # statements1
  ...
end
def d
  ...
  # statements2
  ...
end

我想让我的内联工具直接用代码块替换方法调用。

为此,我想将语句列表组合在一起。我们通常如何做到这一点?有没有办法编写这样的代码?

some_condition ? {
  ...
  # statements1
  ...
} : {
  ...
  # statements2
  ...
}

2 个答案:

答案 0 :(得分:1)

是。您可以使用括号,也可以使用begin ... end

true ? (
  puts "a"
  puts "b"
  puts "c"
) : (
  puts "d"
)


true ? begin
  puts "a"
  puts "b"
  puts "c"
end : begin
  puts "d"
end

答案 1 :(得分:0)

您的代码可以缩减为一行。

%w(a b c).each { |char| puts char }

此处else语句无关紧要,因为true将始终返回true。