如果我有一个字符串“:my.keyword / new”是否有一个读者文字用于将其读入关键字?我知道有关键字功能,但这样做:
(keyword ":my.keyword/new")
给出
::my.keyword/new
我不想要双重结肠
我宁愿不必先用字符串/拆分删除冒号。
答案 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