Ruby 未初始化常量A::B(名称错误)

Ruby 未初始化常量A::B(名称错误),ruby,initialization,constants,nameerror,Ruby,Initialization,Constants,Nameerror,这项工作: class A def m1 b = B.new end end class B end 这失败了——为什么 class A b = B.new end class B end 错误消息“'':未初始化常量A::B(NameError)”被删除。因为在第二个代码中,B=B.new在定义B之前被计算。但是在第一种情况下-似乎B类也没有定义(类似于第二种情况)-但在第一种情况下仍然有效…是的,谢谢。一旦我创建了一个对象和一个被调用的方法m1

这项工作:

class A
    def m1
         b = B.new
    end
end

class B
end
这失败了——为什么

class A
   b = B.new
end

class B
end

错误消息“'':未初始化常量A::B(NameError)”被删除。

因为在第二个代码中,
B=B.new
在定义
B
之前被计算。

但是在第一种情况下-似乎B类也没有定义(类似于第二种情况)-但在第一种情况下仍然有效…是的,谢谢。一旦我创建了一个对象和一个被调用的方法m1,我就得到了同样的错误。现在它有意义了:-)