Ruby 中 双冒号“::“ 的功能

1.参考: class OptionParser < ::OptionParser

class OptionParser < ::OptionParser

这句话的作用是定义1个OptionParser类,其集成至ruby核心库的OptionParser。这句话里面的::表示强制使用核心库的namespace。
在这里插入图片描述

2. 参考 :ruby中的双冒号::

双冒号是定义 name space 用的,或者叫 scope

当你使用 Foo::Bar 的时候,实际你是在找一个名字叫 Foo 的 namespace,然后让它返回它里面的 Bar 参数 ,这个 Bar 可以是个常量,可以是个类,可以是个方法 (后两者在 Ruby 中可视为常量);

同理使用 FooBar::method1 的时候实际上是在要求返回 FooBar 这个 namespace 中 method1 这个「常量」的值。
使用 FooBar.method1 的时候则是在调用这个方法,当然返回结果是一样的,这里 :: 和 . 确实是可以互换不影响结果。
但 :: 只能用来找 class method , instance method 就只能用 . 了
Ruby Ruby 中 双冒号"::" 的功能

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_37646636/article/details/121003428
今日推荐