我一直在写一个clojure解析器,并遇到以下语法:
(defn key
  "Returns the key of the map entry."
  {:added "1.0"
   :static true}
  [^java.util.Map$Entry e]
    (. e (getKey)))
那'''在这里意味着什么?元数据之外的那种语法是否有用处?
这是在Clojure中访问嵌套类的方法.在这种情况下,您正在访问Entry,这是界面内定义的Map接口
在Java中,您只需编写java.util.Map.Entry,在Clojure中您需要使用美元符号:java.util.Map$Entry
'.' 特殊形式是访问Java的基础.它可以被视为成员访问运算符,和/或读作'在'范围内'.
如果第一个操作数是解析为类名的符号,则该访问被视为指定类的静态成员.请注意
EnclosingClass$NestedClass,根据JVM规范命名嵌套类.否则,它被假定为实例成员,并且计算第一个参数以生成目标对象.
| 归档时间: | 
 | 
| 查看次数: | 927 次 | 
| 最近记录: |