gpt4 book ai didi

ruby - 使用现有常量命名 Ruby 方法

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

module Foo
def self.bar
"Module.bar"
end
end

def Foo
"main.Foo"
end

puts Foo # Foo
puts Foo.bar # Module.bar
puts Foo() # main.Foo
puts Foo.class # Module

为什么模块 Foo 和方法 Foo 可以共存于同一个命名空间?为什么 Foo 方法的定义不覆盖模块?

最佳答案

它们不存在于同一个命名空间中。常量和方法在不同的命名空间中。他们就是这样共存的。该语言在常量命名空间中查找,除非您使用方法调用括号,它明确地说“这应该是一个方法。”

关于ruby - 使用现有常量命名 Ruby 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5711520/

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