Как связать вызов метода с блоком `do ... end` в Ruby?

Я делаю следующее:

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

Могу я позвонить map а также compact как-то в одном утверждении, чтобы я мог вернуть результат мгновенно?

Я думаю о чем-то вроде этого (это может быть недействительным, однако):

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

1 ответ

Решение

Да, вы можете вызвать метод здесь.

В твоем случае,

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

ИЛИ ЖЕ

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

Как отмечает @Stefan, назначение не требуется, вы можете напрямую использовать return и если это последняя строка метода, вы можете пропустить return тоже..

Другие вопросы по тегам