相关疑难解决方法(0)

当使用::?指定模块时,为什么Ruby不能在更高的范围内查找类?

我只是坚持了一段时间.拿这个基础:

module Top
  class Test
  end

  module Foo
  end
end
Run Code Online (Sandbox Code Playgroud)

后来,我可以通过这样做Foo来扩展内部的类Test:

module Top
  module Foo
    class SomeTest < Test
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试通过使用::指定模块来最小化缩进:

module Top::Foo
  class Failure < Test
  end
end
Run Code Online (Sandbox Code Playgroud)

这失败了:

NameError:未初始化的常量Top :: Foo :: Test

这是一个错误,还是Ruby解析变量名称的逻辑结果?

ruby ruby-2.2

5
推荐指数
1
解决办法
114
查看次数

标签 统计

ruby ×1

ruby-2.2 ×1