在“Programming Clojure”一书中(Halloway,S。,(2009).Program Clojure.Raleigh,NC:Pragmatic Bookshelf。)他使用语法显示了类型提示
(defn describe-class [#^Class c]
...)
在Clojure Website上,显示的类型提示没有#
阅读器宏:
(defn len2 [^String x]
...)
哪个是对的?
答案 0 :(得分:14)
两者都是,但在不同版本的Clojure中:从1.2版本开始,不推荐使用读者元数据的#^
语法(特别是类型提示),而是使用^
。请注意,#^
仍然在1.2中工作;另请注意,^foo
是1.2之前的(meta foo)
的简写,因此如果您使用旧版本,则 使用旧的表示法。