传递一个块并执行内联?

时间:2015-06-09 15:49:16

标签: ruby

有没有办法传递一段代码并打破封装让代码执行内联?这是我的榜样:

  def return_errors(&block)
    errors = []
    block.call if block_given?
    errors
  end

有什么方法可以让我在块内获取代码来获取局部变量的范围"错误" (不将其作为变量传递)?我希望避免使用实例变量,因为我不希望值继续存在。

2 个答案:

答案 0 :(得分:2)

将其作为块参数发送:

isValidURL()

答案 1 :(得分:0)

你可以"返回"它就像" yield"

def foo(&block)
  result = block.call if block_given?
  p "result = #{result}"
end

foo{
  [1,2,3]
}