好的,这就是我想要做的:
我将一个块传递给类似的方法:Generator.generate(...) {|x| ...}
. 我想存储块,因为我在一些子例程中调用它,这些子例程从不同的地方被调用了很多次。
当然我可以在所有方法和调用中拖动 &block,但我想将它实际保存在一个类变量中并在适当的方法中使用它。
像这样的东西:
class Generator
class << self
attr_accessor :my_block
def generate(..., &block)
my_block = &block
....each {important_method(x)}
end
def important_method(x)
my_block.yield(x)
end
end
end
是否可以存储一个块并在以后使用一些参数生成它?