ruby - 是否可以在 Ruby 中卡住(使其不可变)类或方法?

标签 ruby metaprogramming monkeypatching

在 ruby 中:

module Example
  class ExampleValidator
    def mymethod
      # do something important
    end
  end
end

是否可以使 mymethod 不可变(即没有猴子修补)?

否则“卡住”整个类ExampleValidator也是可以接受的。

最佳答案

是的,您可以调用freeze在模块上。

Example::ExampleVaildator.freeze

但是,I'd question why this is necessary 。也许这是用技术问题来解决社会问题。诸如Rubocop之类的工具应警告猴子补丁。

关于ruby - 是否可以在 Ruby 中卡住(使其不可变)类或方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71180524/

相关文章:

ruby - 如何迭代 n 个元素的重叠组中的数组?

通过函数的 Python 对象

python - 随机不在 Nose 测试中使用模拟

python - 扭曲的服务器: monkey-patch file

ruby-on-rails - 是否有任何库来管理 Rails 应用程序的数据库字段中的 json 内容?

ruby - 如何在 ruby​​ 中将一个类的对象数量限制为给定数量?

ruby - ruby 中的类方法语法

python装饰器和方法

c++ - 是否可以在编译时检测函数是否被调用

python - 猴子从库中修补 python 类方法