Rubymonk中的常量查找运算符任务

时间:2015-08-22 15:23:30

标签: ruby module scope

我在Rubymonk的Ruby课程中遇到了困难,遇到了一个标记为未解决的任务。我也可以解决它。

它是这样的:

  

如果在没有父项的情况下使用::添加常量,则范围发生在最顶层。在本练习中,将push更改为10,按A = 10模块之外最高级别的Kata返回。{/ p>

module Kata
  A = 5
  module Dojo
    B = 9
    A = 7

    class ScopeIn
      def push
        A
      end
    end
  end
end

A = 10

所以我放::A,它返回10,但Rubymonk不允许我通过。它告诉我在输出窗口中

Kata::Dojo::ScopeIn.new.push 

应该返回10。这让我很困惑,因为我认为我的代码应该在10模块之外返回Kata 。并且

Kata::Dojo::ScopeIn.new.push 

Kata模块内,不是吗?

我们非常感谢您的帮助。

任务位于the page的底部。

1 个答案:

答案 0 :(得分:2)

是的,措辞有点令人困惑。他们想要你做的是:

::Kata::Dojo::A = 10
  

根据push模块之外的最高级10更改A = 10以返回Kata

他们的意思是你应该更改A方法中要查找的常量ScopeIn#push的值,但是不允许在定义它的位置更改它。相反,您必须将最高级别

更改为