可能重复:
什么是Ruby的双冒号(::)全部?
你能解释一下,::红宝石中的两个点是什么意思吗?
在这个例子中解释我:
AWS::S3::Bucket.find(BUCKET).objects
Run Code Online (Sandbox Code Playgroud)
这是什么ASW,什么是S3,什么是Bucket(我的意思是,类,数据包,对象......)
以下是您在引擎盖下使用的确切代码:
https://github.com/marcel/aws-s3/blob/master/lib/aws/s3/bucket.rb
如您所见,有嵌套的模块/类:
module AWS
module S3
class Bucket < Base
end
end
end
Run Code Online (Sandbox Code Playgroud)
所以:
类Bucket嵌套在模块S3内,模块S3嵌套在模块AWS中.
模块基本上是一组方法/常量,但它们与不能拥有实例的意义上的类不同.您经常使用它来重构代码并更好地设计代码.有关模块的详细信息在这里.
::用于引用嵌套的模块/类.它是一种解析运算符,可帮助您通过了解其路径来访问嵌套模块/类/常量.