Ruby 的双冒号 `::` 是什么?

2023-12-21

这个双冒号是什么::? E.g. Foo::Bar.

我找到了一个定义 http://marcricblog.blogspot.com/2007/11/ruby-double-colon.html:

The ::是一个一元运算符,它允许:从类或模块外部的任何位置访问在类或模块内定义的常量、实例方法和类方法。

如果你可以使用范围(私有的,受保护的)有什么好处::揭露什么?


::基本上是一个名称空间解析运算符。它允许您访问模块中的项目或类中的类级项目。例如,假设您有这样的设置:

module SomeModule
    module InnerModule
        class MyClass
            CONSTANT = 4
        end
    end
end

您可以访问CONSTANT从模块外部作为SomeModule::InnerModule::MyClass::CONSTANT.

它不会影响类上定义的实例方法,因为您可以使用不同的语法(点.).

相关说明:如果想返回顶级命名空间,请执行以下操作:::SomeModule –本杰明·奥克斯 https://stackoverflow.com/users/146764/benjamin-oakes

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby 的双冒号 `::` 是什么? 的相关文章

随机推荐