gpt4 book ai didi

ruby-on-rails - Module.new 与 class_eval

转载 作者:数据小太阳 更新时间:2023-10-29 07:31:16 25 4
gpt4 key购买 nike

这是一个很大的 promise 。但我希望你专注于这个变化 block 。 http://github.com/rails/rails/commit/d916c62cfc7c59ab6411407a05b946d3dd7535e9#L2L1304

即使不理解代码的完整上下文,我也无法想到我会使用的场景

include Module.new {
class_eval <<-RUBY
def foo
puts 'foo'
end
RUBY
}

最终结果是在根上下文中(self 就在 include Module.new 之前)添加了一个名为 foo 的方法。

如果我取出 Module.new 代码并且如果我只保留 class_eval 在这种情况下我也会有一个名为 foo 的方法在 self 中。

我错过了什么。

最佳答案

如果你dig in the documentation您会发现包含模块只会在尚未定义方法的情况下在其中添加方法。因此,如果该方法已经存在,则此方法不会覆盖该方法。

关于ruby-on-rails - Module.new 与 class_eval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2814708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com