2010-02-16 21 views

Antwort

3

Es greift auf Konstanten in einer bestimmten Klasse oder einem Modul zu. Z.B. ActiveRecord::Base ist die Konstante Base definiert im Modul .

9

Es heißt ein Scope-Auflösung-Operator. Im Grunde eine raffinierte Art, eine Klasse in einem Namensraum zu referenzieren. ActiveRecord ist der Namespace und Base ist die Klasse.

+0

Was ist daran schick? Es ist der normale Weg, dies zu tun. – Chuck

+0

@Chuck, das stimmt. Ich spreche von meinem VB/C# -Anwärter. – Achilles

21

From the Pickaxe:

Wenn ein Empfänger explizit in einem Methodenaufruf spezifiziert wird, kann es aus dem Methodennamen entweder einen Punkt (.) oder zwei Doppelpunkte (::) unter Verwendung abgetrennt werden. Der einzige Unterschied zwischen diesen beiden Formen tritt auf, wenn der Methodenname mit einem Großbuchstaben beginnt. In diesem Fall wird Ruby annehmen, dass ein Methodenaufruf receiver::Thing eigentlich ein Versuch ist, auf eine Konstante namens Thing im Empfänger zuzugreifen, es sei denn, der Methodenaufruf hat eine Parameterliste in Klammern.

+1

hat nichts bekommen ........................................... – Liker777