前端之家收集整理的这篇文章主要介绍了
ruby – 为什么foo不再没有了 – 或者在功能中起作用,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么在下面的
代码段
代码替代它的定义?
def foo
def foo
1
end
end
第一次foo是零
foo
=> nil
foo.foo
=> 1
现在再说一遍foo:
foo
=> 1
你可以看到foo不再是零.谁可以给我解释一下这个?谢谢.
def foo
p "about to redef foo"
def foo
1
end
end
foo
"about to redef foo"
=> nil
foo
=> 1
此外,当您调用foo.foo时,似乎您正在尝试访问内部foo方法,但它不会以这种方式工作.你的foo方法实际上是在Object上定义的,所以你实际上是调用1.foo.
原文链接:https://www.f2er.com/ruby/266735.html