gpt4 book ai didi

ruby - 为什么嵌套类的行为在不同的类声明方式之间有所不同?

转载 作者:太空宇宙 更新时间:2023-11-03 16:53:01 25 4
gpt4 key购买 nike

为什么下面的 c.f() 不能像 b.f() 那样工作?我想使用 class A::C 方式来声明嵌套类以避免缩进过多。

class A
CONSTANT = 1
end

class A
class B
p self # => A::B
def f
print CONSTANT, "\n"
end
end
end

class A::C
p self # => A::C
def f
print CONSTANT, "\n"
end
end

b = A::B.new
b.f() # => 1
c = A::C.new
c.f() # => `f': uninitialized constant A::C::CONSTANT (NameError)

最佳答案

您可以使用分号将其放在一行中:

class A; class C
...
end end

关于ruby - 为什么嵌套类的行为在不同的类声明方式之间有所不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16648664/

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