Ich gehe langsam durch die Rails-Quelle, um Rubin und Rails im Allgemeinen besser zu halten. In der folgenden Rails-Klasse test_case.rb
Die Zeile ist
%Vor%und ich habe mich gefragt, ob es irgendeinen Unterschied gibt, das folgende zu tun
%Vor%Es mag trivial erscheinen, aber diese Dinge spielen eine neue Sprache aus. Die Tests laufen immer noch für ActiveSupport, wenn ich das führende :: :: entfernen, was es tut ...: P
::Test
stellt sicher, dass Sie ein Toplevel-Modul mit dem Namen Test erhalten.
Der letztere Fall ( Test::Unit::TestCase
) stellt nicht sicher, dass Test ein Toplevel-Modul ist, beispielsweise eine Klasse. Es bedeutet, dass es die meiste Zeit funktioniert, aber Sie könnten es versehentlich brechen.
Stellen Sie sich vor, Sie haben diesen Code
%Vor%Dies würde zu einem Fehler führen, da Ihre Testkonstante für die Klasse, die Sie erstellen, keine Unit-Konstante enthält. Wenn Sie es mit :: ansprechen, ist das wie der führende Schrägstrich in einem Pfad.
Es gibt auch einen speziellen Fall für die Verwendung dieser - Sie können Ihren Code in etwas anderem als dem Standard-Root-Namespace auswerten, und Sie brauchen dann den doppelten Doppelpunkt, um Klassen wie :: Object zu adressieren (normalerweise, um sie zu monkeyypatch).
Tags und Links ruby ruby-on-rails