【发布时间】:2014-05-20 12:46:36
【问题描述】:
-
Kernel模块的用途是什么?如果当前在Kernel上定义的所有东西都在Object上定义,并且没有Kernel这样的模块,会发生什么变化? - 当我想定义一个可以在任何对象上调用的方法时,我应该在
Kernel还是Object上定义它?
【问题讨论】:
-
泽,非常尊重你。我认为这是一个很好的问题,我很高兴看到答案。
-
@naomik 谢谢。我看到你偶尔会出现在 Ruby 问题上。
-
这里有一些有趣的花絮可能相关(对于 v.2.1.0):
Kernel.private_methods-Object.private_methods => [:append_features, :extend_object, :prepend_features, :refine, :module_function](为什么不将这些混入 Object?)和Kernel.singleton_methods.size => 61。