【问题标题】:Type hint stored as metadata in clojure?类型提示存储为clojure中的元数据?
【发布时间】:2015-07-16 22:26:31
【问题描述】:

这是一个简单的例子:

(let [^String y "abc"] (meta y))  ; returns nil

似乎根本没有元数据,为什么?

根据文档:

类型提示是放置在符号或表达式上的元数据标签 由编译器使用。

【问题讨论】:

    标签: clojure metadata type-hinting


    【解决方案1】:

    (meta y) 返回 y 的元数据,而不是符号 y。 您无法访问 let 正文中的符号 y。只有在评估 let* 特殊形式时,评估者才能访问它。

    (read-string "^String y")
    ;-> y ;; a symbol
    
    (meta *1)
    ;-> {:tag String}
    

    【讨论】:

      猜你喜欢
      • 2011-03-02
      • 2011-06-22
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 2015-11-14
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多