Development Tip

::는 클로저에서 무엇을 위해 사용됩니까?

yourdevel 2020. 10. 12. 08:14
반응형

::는 클로저에서 무엇을 위해 사용됩니까?


Clojure의 키워드가 : keyword라는 것을 이해합니다. 그러나 ::는 무엇을 위해 사용됩니까? 바인딩이있는 것처럼 보이는 이유는 무엇입니까?

user=> :foo
:foo
user=> ::foo
:user/foo

이중 콜론은 현재 네임 스페이스로 키워드를 완전히 한정 하기위한 것입니다. 이는 다른 라이브러리에 의미있는 키워드에 대한 이름 충돌을 방지하기위한 것입니다. 정규화 된 키워드가 없으면 실수로 맵의 일부 값을 덮어 쓰고 라이브러리와의 호환성이 깨질 수 있습니다.


이제 ClojureClojureScript대해 문서화 된 것처럼 ::키워드를 사용하여 네임 스페이스 별칭을 확인할 수도 있습니다. 예를 들어 ::foo/bar:clojure.core/barif foo가의 별칭으로 평가됩니다 clojure.core. foo에서 네임 스페이스로 확인 되지 않으면 리더 예외가 발생합니다 .

참고 URL : https://stackoverflow.com/questions/5771168/what-is-the-used-for-in-clojure

반응형