gpt4 book ai didi

ruby - 在 Ruby 模块中使用辅助方法

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

我在理解如何将我自己的辅助方法合并到 Ruby 模块中时遇到了一些困难。

我的代码:

module MyModule
def self.foo
bar
end

def bar
# helper for MyModule.foo
end
end

MyModule.foo
#=> NameError: undefined local variable or method `bar' for MyModule:Module

我不确定为什么 MyModule 无法识别 bar 方法。我忽略了 Ruby 范围的哪些方面?

最佳答案

模块可以作为 mixins 集成到类中。因此,您需要将它包含在一个类中,以便它可以与该类的实例一起使用。

截至目前,您可以将 bar 作为您的模块方法,以便按原样访问它。

module MyModule
def self.foo
bar
end
def self.bar
puts "Now it works"
end
end
MyModule.foo #=> Now it works

Ruby Docs

A Module is a collection of methods and constants. The methods in a module may be instance methods or module methods. Instance methods appear as methods in a class when the module is included, module methods do not.

关于ruby - 在 Ruby 模块中使用辅助方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28001479/

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