【发布时间】:2013-03-24 01:48:54
【问题描述】:
考虑
(defn f ^{:foo "bar"} [x] (* x x))
和
(defn g #^{:foo "bar"} [x] (* x x))
编译和运行。
我有两个问题:第一,为什么(meta f) 和(meta g) 只产生nil?我原以为他们会产生{:foo "bar"}; i.o.w.,我是不是完全在元数据上吃午饭,我是否在那里定义了某种垃圾?
其次,元数据的两种语法有什么区别?看起来第二个是“tagged literal”,与edn, the extended data notation 有关,但如果没有更多上下文或示例,我无法完全理解它。
【问题讨论】:
标签: clojure