En mi aplicación, necesito convertir la palabra clave clojure, por ejemplo. : var_name en una cadena "var_name". ¿Alguna idea de cómo se podría hacer eso?
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
funciona no debería ser de interés. La cadena de documentación es el contrato. Cualquier otra cosa es un detalle de implementación en el que no se debe confiar.(name :foo/123/bar)
es "bar". Si desea la ruta completa de una palabra clave que necesita usarsubs
o algo como(str (namespace k) "/" (name k))
En realidad, es igual de fácil obtener la parte del espacio de nombres de una palabra clave:
Tenga en cuenta que los espacios de nombres con varios segmentos se separan con un '.', No con una '/'
Y esto también funciona con palabras clave calificadas por espacio de nombres:
fuente
Tenga en cuenta que la respuesta de kotarak no devolverá la parte del espacio de nombres de la palabra clave, solo la parte del nombre, así que:
El uso de su otro comentario le da lo que pidió:
fuente
No es una tarea tediosa convertir cualquier tipo de datos en una cadena. Aquí hay un ejemplo usando str .
fuente
Esto también le dará una cadena de una palabra clave:
fuente
str
no es necesario en su ejemplo.