【问题标题】:clojure definition of list in source code源代码中列表的clojure定义
【发布时间】:2017-06-07 13:45:52
【问题描述】:

今天早上我在浏览clojure源代码,在clojure/core.clj的顶部附近发现了这个:

(def
    ^{:arglists '([& items])
      :doc "Creates a new list containing the items."
      :added "1.0"}
    list (. clojure.lang.PersistentList creator))

我觉得奇怪的是符号creator。它不会出现在它上面的文件中的任何地方。为什么这不是问题?

【问题讨论】:

    标签: clojure


    【解决方案1】:

    点特殊形式用于java interop。由于clojure.lang.PersistentList是类名符号,

    (. clojure.lang.PersistentList creator)
    

    是对静态creator 字段的访问。

    https://github.com/clojure/clojure/blob/clojure-1.8.0/src/jvm/clojure/lang/PersistentList.java#L66

    【讨论】:

    • 我习惯于看到clojure.lang.PersistentList/creator 进行静态访问,所以这让我很失望。谢谢。
    • 这个函数是在 Foo/bar 语法被添加到语言之前编写的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    相关资源
    最近更新 更多