Clojure 1.4에서 require 내에서 refer의 사용은 무엇입니까?
어떤 이점을 사용하여 않습니다 :refer
에 :require
사용하여 이상이 :only
에 :use
? 다음은 동의어입니까?
(ns so.example (:use [my.lib :only [function]]))
과
(ns so.example (:require [my.lib :refer [function]]))
에 추가 :refer
하는 주요 아이디어 :require
는를 완전히 제거하고 :use
한 명의 연산자 만 다른 패키지를로드하도록하는 것입니다. 기존 :use
을 에뮬레이트 할 수 있습니다 (:require [my.lib :refer :all])
...
예, 동등합니다.
:refer
및 :require
빌드 네임 스페이스에 필요한 기본 작업입니다. :use
더 편리합니다
:require
클래스가로드되도록합니다.:refer
실제로 맵 (실제로는 두 개의 맵) 인 이름 공간에 항목을 추가합니다.:use
이다:refer
+:require
그렇게 보일 수도 있지만 네임 스페이스에는 마법이 없습니다.
이렇게 네임 스페이스를 만들면
(ns so.example (:use my.lib))
: require와 동등한 것은 다음과 같습니다.
(ns so.example (:require [my.lib :refer [function1 function2 function3
list every function in example
here and remember to keep it
up to date ]]))
1.4.0 릴리스부터는 더 이상 사용할 이유가 없습니다. 대신 require : refer를 사용하십시오. Clojure 1.4.0 변경 로그에서 : "require는 이제 : refer 옵션을 사용할 수 있습니다. : refer는 네임 스페이스에서 참조 할 기호 목록을 가져 오거나 모든 공용 변수를 가져 오려면 : all을 사용합니다." ( https://8thlight.com/blog/colin-jones/2010/12/05/clojure-libs-and-namespaces-require-use-import-and-ns.html에서 )
참고 URL : https://stackoverflow.com/questions/10358149/in-clojure-1-4-what-is-the-use-of-refer-within-require
'code' 카테고리의 다른 글
컬렉션에 추가 한 다음 정렬하거나 정렬 된 컬렉션에 추가하는 것이 더 빠릅니까? (0) | 2020.10.27 |
---|---|
C #에서 명령 줄 인수 이스케이프 (0) | 2020.10.27 |
IntelliJ IDEA에서 '기본 gradle 래퍼'의 버전을 변경하는 방법은 무엇입니까? (0) | 2020.10.27 |
얼마나 많은 소켓 연결이 가능합니까? (0) | 2020.10.27 |
모든 바이너리 파일을 무시하고 디렉토리를 재귀 적으로 비교합니다. (0) | 2020.10.27 |