Programing

네임 스페이스의 기능을 나열하는 방법은 무엇입니까?

lottogame 2020. 11. 14. 09:42
반응형

네임 스페이스의 기능을 나열하는 방법은 무엇입니까?


Clojure 네임 스페이스의 모든 기능을 나열하는 방법을 알고 싶습니다. 조사를 좀 해봤지만 아직 거기에 있지 않습니다. show 메서드를 사용하여 Java 클래스의 메서드를 나열하는 방법을 이미 알아 냈습니다.

(show java.awt.Graphics)

Clojure 네임 스페이스의 기능을 나열하기 위해 다음과 같은 show 메서드를 시도했습니다.

(show 'clojure.contrib.repl-utils)

이것은 어떤 자바 클래스 방법,하지만 내가 좋아하는 찾고 있어요 사람을 보여줍니다 docshow. 어떻게 얻을 수 있습니까?


나는 보통 전화

(keys (ns-publics 'foo))

네임 스페이스에서 내 보낸 변수를 나열합니다 foo. 예를 clojure.contrib.monads들어이 반환

(defmonad censor m-when-not m+write+m maybe-m maybe-t ...)

( ...더 많은 것을 의미합니다).

보다 일반적으로, 이름 ns-이 네임 스페이스별로 Vars를 나열 하는 이름으로 시작하는 함수가 있으며 특정 추가 기준이 첨부되어 있습니다.

  1. ns-map -가장 일반적인 함수는 심볼 (실제로는 네임 스페이스가 한정되지 않은 심볼)로 키가 지정된 맵을 반환합니다. 여기서 각 심볼에 해당하는 값은 주어진 네임 스페이스에서 심볼이 해석되는 Var 또는 클래스입니다.

  2. ns-interns-비슷 ns-map하지만 주어진 네임 스페이스에 인턴 된 Var 만 포함합니다 ( use또는 refer호출 또는 clojure.core.

  3. ns-publics-와 비슷 ns-interns하지만 비공개가 아닌 Var 만 포함합니다.

  4. ns-imports-와 비슷 ns-map하지만 값이 Java 클래스에 해당하는 항목 만 포함합니다.

도 있습니다 ns-aliases다른 네임 스페이스에서 바르 참조 할 때 속기의 별칭으로 사용할 수있는 목록 기호; 당신이 호출하는 경우 예를 들면 (require '[clojure.contrib.math :as math]), ns-aliases의 키 항목이 포함됩니다 math값이 실제 공간이 될 것이다 (기호)를 clojure.contrib.math. 이러한 매핑은에서 반환 한지도에 포함되지 않습니다 ns-map.


dir 사용할 수 있습니다 . (아마도 처음 질문을 받았을 때이 기능을 사용할 수 없었습니다.)

user=> (dir clojure.string)
blank?
capitalize
escape
join
lower-case
re-quote-replacement
replace
replace-first
reverse
split
split-lines
trim
trim-newline
triml
trimr
upper-case
nil

봐 가지고 여기를 . 더 구체적으로:

;; Sometimes I like to ask which public functions a namespace provides.
(defn- ns-publics-list [ns] (#(list (ns-name %) (map first (ns-publics %))) ns))

반 시계 방향을 사용하는 사람들을 위해 기본적으로 표시되는 "네임 스페이스 브라우저"가 있습니다.

보이지 않는 경우 메뉴 옵션을 통해 표시 할 수 있습니다.

창>보기 표시> 네임 스페이스 브라우저

Official documentation: http://doc.ccw-ide.org/documentation.html#_namespace_browser_view

Excerpt from official documentation:

The Namespace Browser View displays all symbols of all namespaces of the active REPL.[2]. It allows you to jump to the definition of symbols in the relevant files (including inside jars): just double-click on the symbol name in the Namespace Browser View.

참고URL : https://stackoverflow.com/questions/2747294/how-to-list-the-functions-of-a-namespace

반응형