欢迎!请参阅关于页面以获取更多关于此的工作方式的详细信息。
{{(fn [a-b a_b] (fn [] a_b a-b))}}抛出{{CompilerException java.lang.ClassFormatError: Duplicate field name&signature}}
评论者:bronsa
这是由于clojure将-简单地转换为_导致的 - 触发类似错误的其他方法是
-
_
user=> (deftype x [a_b a-b]) 语法错误(ClassFormatError)编译deftype*在(REPL:1:1)。在类文件compile__stub/user/x中,字段名称 "a_b" 与签名 "Ljava.lang.Object;" 重复
解决这个问题需要改变clojure过去10年一直在使用的名称转换方案,这可能有一些严重的意外后果,不确定这是否可行