:누군가 나에게 루비 상수 검색을 설명해 줄 수 있습니까? 더 구체적으로
- 때 당신이 범위를 앞에해야합니까
::
(같은::Foo::Bar
) - 직접 확인 스코프 const를 참조한다? (단지
Foo::Bar
) - 이 동작이 너무 혼란스러운 이유가 있습니까?
편집 : 나는 지금까지 내가 이해 한대로이
module Foo
THING = 'thing'
module Bar
puts THING
end
end
#=> thing
module Foo::Bar
puts THING
end
#=> NameError: uninitialized constant Foo::Bar::THING
내가 말하고있는 괴상함에 대해 좀 더 분명했습니다. –
두 번째 예제는 Foo :: Bar 네임 스페이스를 범위로 가져옵니다. OTOH, 첫 번째 예에서와 같이 명시 적으로 각 네임 스페이스를 열면 Foo와 Foo :: Bar가 둘 다 범위에 포함됩니다. – Ian
꽤 이상하지만 설명 할 수 있습니다. 나는 모든 모듈에서 어느 구문에서든 클래스를 검색 할 것이라고 가정했다. 두 구문 사이의 다른 차이점을 알고 있습니까? –