我现在正在研究街区,他们难倒了我。
我以此为例:
class ProcExample
attr_reader :proc_class
def initialize(&block)
@stored_proc = block
@proc_class = @stored_proc.class
end
def use_proc(arg)
@stored_proc.call(arg)
end
end
eg = ProcExample.new {|t| puts t}
p eg.proc_class
p eg.use_proc("Whoooooooo")
现在我有点(不是真的(了解块是如何传递到@stored_proc 的。我使用@proc_class 是因为我很好奇块对象实际存储为哪个类。
但是,如果我想将块存储在常规变量中怎么办?
例如:
block_object = {|param| puts param**2}
但我发现这被视为哈希而不是块/过程。自然会出现错误。我已经尝试在变量名中使用&符号分配它,并且在块的开头,但这不起作用。
最终我想知道是否可以调用一个函数并用包含该块的变量替换该块。
像这样:
(1..10).each block_object
这在Ruby中可能吗?