当前函数实例在打印toString()时会使用Java名称
`
user=> (ns proj.util-fns)
nil
proj.util-fns=> (defn a->b [a] (inc a))
'proj.util-fns/a->b
proj.util-fns=> a->b
object[proj.util_fns$a__GT_b 0x141ba1f1 "proj.util_fns$a__GT_b@141ba1f1"]
`
为了调试目的,如果函数的toString()描述了Clojure模式的fn名称将会非常有用。
方法:在函数实例中存储原始名称并在toString()中使用它而不是返回类名称。
`
proj.util-fns=> a->b
object[proj.util_fns$a__GT_b 0x47d1a507 "proj.util-fns/a->b(NO_SOURCE_FILE:2)"]
`
权衡:出于函数名称,函数实例大小增加。
补丁: CLJ-1278-2.patch