2010-11-22 25 views
9

在著作 “编程的Clojure”(哈洛韦,S.(2009)编程Clojure的北卡罗来纳州罗利:。。。务实书架),他显示了使用语法Clojure的类型提示语法

(defn describe-class [#^Class c] 
    ...) 

而键入提示在Clojure Website,显示没有#读者宏类型提示:

(defn len2 [^String x] 
    ...) 

哪个是正确的?

回答

14

两者都是,但是在Clojure的不同版本中:从1.2版本开始,#^用于阅读器元数据(特别是类型提示)的语法被弃用,并且将使用^来代替。请注意,#^仍然工程在1.2;还请注意,^foo是1.2之前的(meta foo)的缩写,所以如果您使用旧版本,那么将使用旧的表示法。

+0

ł:谢谢。我没有意识到语法已经改变。 – Ralph 2010-11-22 13:02:46