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 |