반응형
clojure / clojurescript의 개인 정의
Clojure와 clojurescript에서 defn-라는 defn의 비공개 버전을 가질 수 있지만 def-가 포함되지 않은 것처럼 보이기 때문에 def에 대해 동일한 작업을 어떻게 수행합니까?
:private true
메타 데이터 키 값 쌍 을 추가해야합니다 .
(def ^{:private true} some-var :value)
;; or
(def ^:private some-var :value)
두 번째 형식은 첫 번째 형식의 축약 형입니다.
언급 할 가치가 있습니다. 현재 ClojureScript에서 비공개 def
(및 defn
) 를 가질 수 없습니다 . https://clojurescript.org/about/differences ( "특수 양식"아래)
컴파일은 실패하지 않고 def
계속 액세스 할 수 있습니다.
정의가 필요한 경우 구현 방법은 다음과 같습니다.
(defmacro def- [item value]
`(def ^{:private true} ~item ~value)
)
이 Google 그룹 게시물 에는이 주제에 대한 토론이 있습니다. 요청이 고려 된 것 같습니다. 응답 중 하나에 따르면, defn-
은 좋은 생각이 아닌 것으로 간주되어 def
다른 사람들 과 함께 유지하지 않기로 결정 했습니다.
구현 방법은 다음과 같습니다 def-
.
(defmacro def-
"same as def, yielding non-public def"
[name & decls]
(list* `def (with-meta name (assoc (meta name) :private true)) decls))
이 코드는의 코드와 매우 유사하며 defn-
다음을 사용하여 찾을 수 있습니다 (clojure.repl/source defn-)
.
(defmacro defn-
"same as defn, yielding non-public def"
{:added "1.0"}
[name & decls]
(list* `defn (with-meta name (assoc (meta name) :private true)) decls))
참조 URL : https://stackoverflow.com/questions/20443545/private-def-in-clojure-clojurescript
반응형
'program tip' 카테고리의 다른 글
Wordpress를 Django 또는 Ruby on Rails와 같은 프레임 워크로 대체 할 수 있습니까? (0) | 2020.12.15 |
---|---|
쉘 스크립트에서 여러 줄 출력 들여 쓰기 (0) | 2020.12.15 |
Angular 2-외부 URL로 리디렉션하고 새 탭에서 열기 (0) | 2020.12.15 |
Vue Js-v-for X 회 (범위 내)를 통한 루프 (0) | 2020.12.15 |
현재 비밀번호를 모르면 asp.net 멤버십 공급자를 사용하여 해시 된 비밀번호를 어떻게 변경합니까? (0) | 2020.12.15 |