如何将方法调用链接到Ruby中的`do ... end`块?

时间:2017-06-08 11:12:48

标签: ruby ruby-block

我正在做以下事情:

array_variable = collection.map do |param|
  some value with param
end
return array_variable.compact

我可以在一个声明中以某种方式调用mapcompact,所以我可以立即返回结果吗?

我正在考虑这样的事情(但可能无效):

array_variable = block_code param.compact 
# block_code here is a method for example which fills the array

1 个答案:

答案 0 :(得分:11)

是的,你可以在这里调用一个方法。

在你的情况下,

array_variable = collection.map do |param|
  # some value with param
end.compact

OR

array_variable = collection.map{ |param| some value with param }.compact

正如@Stefan所指出的,不需要分配,你可以直接使用return,如果这是方法的最后一行,你也可以省略return ..