简单的ruby语法问题

dor*_*kon 1 ruby syntax class

可能重复:
什么是Ruby的双冒号(::)全部?

你能解释一下,::红宝石中的两个点是什么意思吗?

在这个例子中解释我:

AWS::S3::Bucket.find(BUCKET).objects  
Run Code Online (Sandbox Code Playgroud)

这是什么ASW,什么是S3,什么是Bucket(我的意思是,类,数据包,对象......)

Amo*_*tir 5

以下是您在引擎盖下使用的确切代码:

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)

所以:

  • AWS是一个模块.
  • S3是一个模块.
  • 斗是一类.

类Bucket嵌套在模块S3内,模块S3嵌套在模块AWS中.

模块基本上是一组方法/常​​量,但它们与不能拥有实例的意义上的类不同.您经常使用它来重构代码并更好地设计代码.有关模块的详细信息在这里.

::用于引用嵌套的模块/类.它是一种解析运算符,可帮助您通过了解其路径来访问嵌套模块/类/常量.