Представьте, что у вас есть этот код
module UserTesting
class Test # Details about a simple test
end
class TestCases < Test::Unit::TestCase
end
end
# => NameError: uninitialized constant UserTesting::Test::Unit
Это приведет к ошибке, поскольку ваша тестовая константа, доступная для создаваемого вами класса, не содержит в себе постоянной единицы.Если вы обращаетесь к нему с помощью ::, это похоже на начальную косую черту в пути.
Существует также особый случай их использования - вы можете оценивать свой код в другом месте, кроме корневого пространства имен по умолчанию, и тамна самом деле нужно двойное двоеточие для адресации таких классов, как :: Object (обычно для их обезьяны).