根据维基百科,monkey patch是:
一种扩展或修改运行时的方法
同一条记录中的以下陈述让我感到困惑:
在Ruby中,猴子补丁这个词是
我想知道它是在做下面这样的事情,还是在做其他事情?
class String
def foo
"foo"
end
end
根据维基百科,monkey patch是:
一种扩展或修改运行时的方法
同一条记录中的以下陈述让我感到困惑:
在Ruby中,猴子补丁这个词是
我想知道它是在做下面这样的事情,还是在做其他事情?
class String
def foo
"foo"
end
end
简而言之,没有"确切"的含义,因为这是一个新奇的术语,不同的人使用它的方式不同.至少从维基百科的文章中可以看出这一点.有些人坚持认为它只适用于"运行时"代码(我想是内置类),而有些人则用它来指代任何类的运行时修改.
就我个人而言,我更喜欢更具包容性的定义.毕竟,如果我们只使用术语来修改内置类,那么我们将如何指代所有其他类的运行时修改?对我来说,重要的是源代码和实际运行的类之间存在差异.
在Ruby中,猴子补丁这个词是
上面的声明断言Ruby的用法是不正确的——但术语会不断演变,这并不总是一件坏事.