Clojure类型提示语法

Ral*_*lph 9 types clojure

在"Programming Clojure"一书中(Halloway,S.,(2009).Program Clojure.Raleigh,NC:Pragmatic Bookshelf.)他使用语法显示了类型提示

(defn describe-class [#^Class c]
  ...)
Run Code Online (Sandbox Code Playgroud)

Clojure网站上,类型提示显示没有#阅读器宏:

(defn len2 [^String x]
  ...)
Run Code Online (Sandbox Code Playgroud)

哪个是对的?

Mic*_*zyk 14

两者都是,但在不同版本的Clojure中:从1.2版本开始,#^不推荐使用读者元数据(特别是类型提示)的语法,^而是使用它.请注意,#^仍然适用于1.2; 还指出,^foo为速记(meta foo)之前1.2,所以你必须,如果您使用的是较旧版本使用旧的符号.