是否有关键字的clojure reader字面值?

时间:2016-04-21 15:16:41

标签: clojure

如果我有一个字符串“:my.keyword / new”是否有一个读者文字用于将其读入关键字?我知道有关键字功能,但这样做:

(keyword ":my.keyword/new")

给出

::my.keyword/new

我不想要双重结肠

我宁愿不必先用字符串/拆分删除冒号。

2 个答案:

答案 0 :(得分:4)

使用clojure.edn/read-string

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

这将safely将字符串转换为数据结构。

答案 1 :(得分:4)

关键字确实有reader literal

:my.keyword/new

如果您想以编程方式创建关键字,可以使用keyword函数执行此操作,如您所述:

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

最后,如果您想将可读形式(例如关键字)读入数据结构,可以使用clojure.edn/read-string

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