根据维基百科,monkey patch是:

一种扩展或修改运行时的方法

同一条记录中的以下陈述让我感到困惑:

在Ruby中,猴子补丁这个词是

我想知道它是在做下面这样的事情,还是在做其他事情?

class String
  def foo
    "foo"
  end
end

推荐答案

简而言之,没有"确切"的含义,因为这是一个新奇的术语,不同的人使用它的方式不同.至少从维基百科的文章中可以看出这一点.有些人坚持认为它只适用于"运行时"代码(我想是内置类),而有些人则用它来指代任何类的运行时修改.

就我个人而言,我更喜欢更具包容性的定义.毕竟,如果我们只使用术语来修改内置类,那么我们将如何指代所有其他类的运行时修改?对我来说,重要的是源代码和实际运行的类之间存在差异.

在Ruby中,猴子补丁这个词是

上面的声明断言Ruby的用法是不正确的——但术语会不断演变,这并不总是一件坏事.

Ruby相关问答推荐

MongoDB通过Brew Services";未定义的方法`plist_starting';";

Rbenv说未安装已安装的版本

PDFNet:Ubuntu 16.04 和 Ubuntu 20.04 上 PDF 输出文本的词序不同

如何用 yield_self 断链

从 ruby​​ 脚本运行另一个 ruby​​ 脚本

如何记录在 Ruby 程序中调用的每个方法?

从 Time 对象获取下/上个月

类中的 Ruby 类(或模块中的模块)

将参数传递给erb视图

Ruby 中 Postgres 查询的简单示例

Rails:Date.today 是 UTC 吗?

如何合并散列数组以获取值数组的散列

RSpec:如何测试文件操作和文件内容

与 String 相比,在 Ruby 中使用 StringIO 有哪些优势?

在 Selenium WebDriver 中按 Ctrl + A

Ruby 和您必须使用 OpenSSL 支持重新编译 Ruby 或更改 Gemfile 中的源代码

to_a 和 to_ary 有什么区别?

Mustache Templates 可以做模板扩展吗?

将两个数组组合成哈希

如何使用#{variable}在Ruby中格式化带有浮点数的字符串?