gpt4 book ai didi

ruby - 为什么没有 Module.method_defined?(:method) work correctly?

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

我正在尝试使用 Module.method_defined?(:method) 检查模块中是否定义了方法,它返回 false,应该返回 true。

module Something
def self.another
1
end
end

Something.methods 列出了“另一个”,但 Something.method_defined?(:another) 返回 false

这可能不起作用,因为该方法是在 self 上定义的吗?如果是这种情况,除了使用 method_defined? 之外,还有其他方法可以检查模块上是否定义了方法吗?

最佳答案

要知道模块是否有模块方法,可以使用respond_to?在模块:

Something.respond_to?(another)
=> true

方法定义?将告诉您包含模块的类的 INSTANCES 是否响应给定的方法。

关于ruby - 为什么没有 Module.method_defined?(:method) work correctly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1983860/

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