2
考虑此代码:为什么顶级方法在irb中处理方式不同?
def x; end
puts public_methods.include? :x
,如果我在irb
运行和Ruby解释器(使用Ruby 1.9.3两者)我得到:
true # from irb
false # from ruby
为什么在公开定义顶级方法irb
以及为什么它不同于ruby
?
考虑此代码:为什么顶级方法在irb中处理方式不同?
def x; end
puts public_methods.include? :x
,如果我在irb
运行和Ruby解释器(使用Ruby 1.9.3两者)我得到:
true # from irb
false # from ruby
为什么在公开定义顶级方法irb
以及为什么它不同于ruby
?
我可以证实在Ruby中1.9.3p448这种行为。
我想这是因为在IRB的REPL的定义被包裹在单,所以要模仿它只是把你的脚本如下:
class << self
def x; end
end
puts public_methods.member? :x # true
厄贝沙坦给'在我的环境FALSE'。 – sawa
irb在我的环境中也是错误的。 – Fred
我也在irb中获得了false – xaxxon