2011-01-27 42 views
33

我已經在類名前看到了Rails中雙冒號的大量用法。Ruby中類名之前的雙冒號?

例如:

require ::File.expand_path('../config/environment', __FILE__) 

我知道Module::Class::Constant手段,但::Class

回答

52

這意味着你指的是來自頂級命名空間的常量File。這在這樣的情況下是有意義的:

class MyClass #1 
end 

module MyNameSpace 
    class MyClass #2 
    end 

    def foo # Creates an instance of MyClass #1 
    ::MyClass.new # If I left out the ::, it would refer to 
        # MyNameSpace::MyClass instead. 
    end 
end 
相關問題