【问题标题】:Is there a clojure reader literal for keywords?关键字是否有clojure阅读器文字?
【发布时间】:2016-04-21 15:16:40
【问题描述】:

如果我有一个字符串 ":my.keyword/new" 是否有阅读器文字可用于将其读入关键字?我知道有关键字函数,但这样做:

(keyword ":my.keyword/new")

给予

::my.keyword/new

我不想要双冒号

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

【问题讨论】:

    标签: clojure


    【解决方案1】:

    关键字确实有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
    

    【讨论】:

      【解决方案2】:

      使用clojure.edn/read-string:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-08-30
        • 2011-09-19
        • 2010-10-17
        • 2018-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多