[code="java"]
class SimpleProc
def to_proc
proc {"Simple Proc"}
end
end
def method
yield
end
obj = SimpleProc.new
puts method(&obj)
[/code]
55555,为什么结果会是:Simple Proc
to_proc应该相当于java里的tostring方法把
兄弟,不然结果是什么?
看method方法的定义,你调用method(&obj),就会去调用obj.to_proc
yield这个东西,本身就是执行后边带的代码块。。你扔个对象进去,他
就试图转换成一个proc对象来执行。。
假如你的SimpleProc里边没有这个to_proc的话,这么用就会出错。。