0

我想返回的输出yield但也执行之后的代码yield,有没有更“正确”的方式?:

def myblock
  yield_output = yield
  puts 'after yield'
  yield_output
end

myblock {'my yield'}
# after yield
#  => my yield
4

1 回答 1

4

你可以使用tap

def myblock
  yield.tap { puts 'after yield' }
end

myblock { 'my yield' }
# after yield
#=> my yield
于 2017-08-03T09:44:46.597 回答