模块#优化和模块#使用-无法';我不明白它们在Ruby中的用法

模块#优化和模块#使用-无法';我不明白它们在Ruby中的用法,ruby,Ruby,有人能帮我理解下面两种方法是如何工作的吗 模块#细化 模块#已使用 关于“优化”,它是名为“实验”功能的一部分。改进不是Ruby 2.0核心规范的一部分,因为它们的价值和后果仍在不同Ruby实现者之间讨论(请记住,Ruby不仅仅是其核心实现“MRI”-JRuby、Rubinius和其他) 改进(如果有一天在规范中出现的话)将允许某种“本地猴子补丁”,只允许在给定模块的范围内修补现有类。如果您对这些讨论的某些部分感兴趣,您应该看看Charles Olivier Nutter(他是JRuby的主

有人能帮我理解下面两种方法是如何工作的吗

  • 模块#细化
  • 模块#已使用
关于“优化”,它是名为“实验”功能的一部分。改进不是Ruby 2.0核心规范的一部分,因为它们的价值和后果仍在不同Ruby实现者之间讨论(请记住,Ruby不仅仅是其核心实现“MRI”-JRuby、Rubinius和其他)

改进(如果有一天在规范中出现的话)将允许某种“本地猴子补丁”,只允许在给定模块的范围内修补现有类。如果您对这些讨论的某些部分感兴趣,您应该看看Charles Olivier Nutter(他是JRuby的主要实现者)或Yehuda Katz

关于“已使用”,据消息来源称,它没有多大作用:

static VALUE
rb_obj_dummy(void)
{
    return Qnil;
}
经过一些研究和一个“”之后,以下是Charles Olivier Nutter(JRuby首席实施者)的答案:

#当模块出现在细化的“使用”调用中时,将调用used


所以你的两个问题实际上是联系在一起的。

仍然无法理解所使用的方法。:(你到底想“理解”什么?你问题背后的问题是什么?好吧!为什么或者什么时候我们应该使用
Module#used
方法?这个方法的目的是什么?显然没有目的。我认为它在某些方面也与改进有关(因为它存在于Ruby 2.0中,但不存在于1.9中),但找不到关于此的任何可靠来源-并且该方法没有记录也没有实现(除了返回nil的“虚拟”实现)。看起来JRuby也没有实现它: