2016-04-21 4 views
2

Wenn ich eine Zeichenfolge ": my.keyword/new" habe, gibt es ein Leser-Literal, um es in ein Schlüsselwort zu lesen? Ich weiß, es ist das Schlüsselwort Funktion aber dies zu tun:Gibt es einen Clojure Reader Literal für Schlüsselwörter?

(keyword ":my.keyword/new") 

gibt

::my.keyword/new 

und ich will nicht den doppelten Doppelpunkt

Ich würde lieber nicht den Doppelpunkt mit String entfernen/zuerst teilen.

Antwort

4

Es ist in der Tat ein reader literal für keywords:

:my.keyword/new 

Wenn Sie programmatisch ein Schlüsselwort erstellen möchten, können Sie dies mit der keyword Funktion tun können, wie Sie bemerkt:

(keyword "my.keyword/new") 
;=> :my.keyword/new 
(keyword "my.keyword" "new") 
;=> :my.keyword/new 

Schließlich Wenn Sie ein lesbares Formular (z. B. ein Schlüsselwort) in eine Datenstruktur einlesen möchten, können Sie clojure.edn/read-string:

(require '[clojure.edn :as edn]) 
;=> nil 
(edn/read-string ":my.keyword/new") 
;=> :my.keyword/new 
01 verwenden
4

Verwendung clojure.edn/read-string:

user> (clojure.edn/read-string ":my.keyword/new") 
:my.keyword/new 

Dies wird safely convert String in Datenstruktur.

Verwandte Themen