Dans mon application, j'ai besoin de convertir le mot-clé clojure par exemple. : nom_var dans une chaîne "nom_var". Des idées comment cela pourrait être fait?
100
user=> (doc name)
-------------------------
clojure.core/name
([x])
Returns the name String of a string, symbol or keyword.
nil
user=> (name :var_name)
"var_name"
(source name)
?name
fonctionne ne devrait pas être d'intérêt. Le docstring est le contrat. Tout le reste est un détail de mise en œuvre sur lequel il ne faut pas se fier.(name :foo/123/bar)
«bar». Si vous voulez le chemin complet d'un mot-clé que vous devez utilisersubs
ou quelque chose comme(str (namespace k) "/" (name k))
En fait, il est tout aussi facile d'obtenir la partie espace de noms d'un mot-clé:
Notez que les espaces de noms avec plusieurs segments sont séparés par un «.», Pas un «/»
Et cela fonctionne également avec les mots-clés qualifiés d'espace de noms:
la source
Notez que la réponse de kotarak ne retournera pas la partie espace de nom du mot-clé, juste la partie nom - donc:
L'utilisation de son autre commentaire donne ce que vous avez demandé:
la source
Ce n'est pas une tâche fastidieuse de convertir un type de données en une chaîne, voici un exemple en utilisant str .
la source
Cela vous donnera également une chaîne d'un mot-clé:
la source
str
n'est pas nécessaire dans votre exemple.