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)?namefunciona 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 usarsubso 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
strno es necesario en su ejemplo.