调用顶级常量
顶级常量在Object中定义,使用::Constant_Name
调用,等同于Object::Constant_Name
命名空间的坑
class Cluster
class Array
def initialize(n)
# 此处想使用原始Array,
@disks = Array.new(n) {|i| "disk#{i}"}
# Oops, wrong Array! SystemStackError!
end
end
end
此处想使用原始Array,但使用到的确是Cluster::Array
,解决办法就是加上限定符号::
class Cluster
class Array
def initialize(n)
@disks = ::Array.new(n) {|i| "disk#{i}"}
end
end
end