Python « dir » équivalent en Clojure
Question
Quelqu'un sait s'il existe un équivalent Clojure pour Pythons « dir ». Fondamentalement, je dois connaître les fonctions que je peux faire appel à quelque chose ou plus spécifiquement pour des objets Java Je veux connaître les méthodes et propriétés disponibles (je ne sais pas si en java ils sont appelés méthodes et propriétés, c'est C # lingo).
La solution
clojure.contrib.repl-utils/show
pour une utilisation au REPL:
user=> (use '[clojure.contrib.repl-utils :only (show)])
nil
user=> (show String)
=== public final java.lang.String ===
[ 0] static CASE_INSENSITIVE_ORDER : Comparator
[ 1] static copyValueOf : String (char[])
[ 2] static copyValueOf : String (char[],int,int)
[ 3] static format : String (Locale,String,Object[])
[ 4] static format : String (String,Object[])
...
Sinon, peut-être quelque chose comme:
user=> (map #(.getName %) (.getMethods String))
("equals" "toString" "hashCode" "compareTo" ...)
.getFields
et .getConstructors
en conséquence.
Autres conseils
L'espace de noms clojure.repl
(qui est disponible depuis Clojure 1.2) contient la macro dir
et la fonction dir-fn
:
user=> (clojure.repl/dir clojure.main)
load-script
main
repl
...
user=> (clojure.repl/dir-fn 'clojure.main)
(load-script main repl repl-caught repl-exception
repl-prompt repl-read skip-if-eol skip-whitespace
with-bindings)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow