【发布时间】:2016-04-21 15:16:40
【问题描述】:
如果我有一个字符串 ":my.keyword/new" 是否有阅读器文字可用于将其读入关键字?我知道有关键字函数,但这样做:
(keyword ":my.keyword/new")
给予
::my.keyword/new
我不想要双冒号
我宁愿不必先删除带有字符串/拆分的冒号。
【问题讨论】:
标签: clojure
如果我有一个字符串 ":my.keyword/new" 是否有阅读器文字可用于将其读入关键字?我知道有关键字函数,但这样做:
(keyword ":my.keyword/new")
给予
::my.keyword/new
我不想要双冒号
我宁愿不必先删除带有字符串/拆分的冒号。
【问题讨论】:
标签: clojure
关键字确实有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
【讨论】:
使用clojure.edn/read-string:
user> (clojure.edn/read-string ":my.keyword/new")
:my.keyword/new
这将safely 将字符串转换为数据结构。
【讨论】: