Voici le code exact que vous utilisez sous le capot:
https://github.com/marcel/aws-s3/blob/master/lib/aws/s3/bucket.rb
Comme vous pouvez le voir, il existe des modules/classes imbriquées:
module AWS
module S3
class Bucket < Base
end
end
end
donc:
- AWS est un module.
- S3 est un module.
- Bucket est une classe.
La classe Bucket est imbriquée dans le module S3 qui est imbriqué dans le module AWS.
Un module est essentiellement un ensemble de méthodes/constantes, mais elles diffèrent des classes dans le sens où elles ne peuvent pas avoir d'instances. Vous l'utilisez beaucoup pour refactoriser votre code et mieux le concevoir. Plus d'informations sur les modules here.
Le code :: est utilisé pour désigner les modules/classes imbriqués. C'est une sorte d'opérateur de résolution, qui vous aide à atteindre vos modules/classes/constantes imbriqués en connaissant leurs chemins.
Dupliquer: http://stackoverflow.com/questions/3009477/what-is-rubys-double-colon-all-about. – Blender
"Simple ruby ... question" n'est pas un titre très utile. 1) Ne pas décrire à quel point la question est difficile dans le titre. 2) Tout dans Stack Overflow est une question, en disant que c'est une question redondante. Tout ce que nous dit le titre, c'est que c'est à propos de la syntaxe de Ruby. –