LmxZz
2008-11-15 20:57
浏览 260

新人ruby问题~~恳请大家帮忙看看

[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

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • liumy601 2008-11-17 10:48
    已采纳

    to_proc应该相当于java里的tostring方法把

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 小毛1983 2008-11-16 08:40
    1. class SimpleProc
    2. def to_proc
    3. proc {"Simple Proc"}
    4. end
    5. end

    6. def method
    7. yield
    8. end

      1. obj = SimpleProc.new
      2. puts method(&obj)

    兄弟,不然结果是什么?

    看method方法的定义,你调用method(&obj),就会去调用obj.to_proc
    yield这个东西,本身就是执行后边带的代码块。。你扔个对象进去,他
    就试图转换成一个proc对象来执行。。
    假如你的SimpleProc里边没有这个to_proc的话,这么用就会出错。。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题