我在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的底部。
答案 0 :(得分:2)
::Kata::Dojo::A = 10
根据
push
模块之外的最高级10
更改A = 10
以返回Kata
他们的意思是你应该更改A
方法中要查找的常量ScopeIn#push
的值,但是不允许在定义它的位置更改它。相反,您必须将从最高级别