module Test
class A
def hi
p 'hi'
end
def bye
p 'bye'
end
puts methods.sort
p '---------'
puts methods.sort - Object.methods
end
end
Run Code Online (Sandbox Code Playgroud)
第二个puts不打印任何东西,第一个不打印'hi'和'bye'.为什么?
因为两个线在的范围内被执行A类本身,而hi与bye是实例方法那类.试试这个:
module Test
class A
def hi
p 'hi'
end
def bye
p 'bye'
end
puts instance_methods(false)
end
end
# >> hi
# >> bye
Run Code Online (Sandbox Code Playgroud)
当你传递false给instance_methods你时,你指示它不包括超类的方法.
| 归档时间: |
|
| 查看次数: |
447 次 |
| 最近记录: |