gpt4 book ai didi

Ruby:是否可以在模块中定义类方法?

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

假设有三个类:ABC。我希望每个类都有一个类方法,例如 self.foo,它具有与 AB 完全相同的代码C.

是否可以在模块中定义 self.foo 并将此模块包含在 A, B & C?我尝试这样做,但收到一条错误消息,指出无法识别 foo

最佳答案

是的

module Foo
def self.included(base)
base.extend(ClassMethods)
end
module ClassMethods
def some_method
# stuff
end
end
end

我应该添加一个可能的注意事项 - 如果模块将成为所有类方法 - 最好只在模型中使用 extend ModuleName 并直接在模块中定义方法 - 而不是Module 中的一个 ClassMethods 模块,一个 la

 module ModuleName
def foo
# stuff
end
end

关于Ruby:是否可以在模块中定义类方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4699355/

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