【发布时间】:2013-07-30 19:26:03
【问题描述】:
clojure.contrib 中曾经有这个useful utility called show。现在,它已被弃用,是否有与之等效的版本?
谢谢!
【问题讨论】:
clojure.contrib 中曾经有这个useful utility called show。现在,它已被弃用,是否有与之等效的版本?
谢谢!
【问题讨论】:
Stuart Halloway 在talk 中讨论了将show 解构为更“简单”,从而提供不同的可重用功能,他给出了clojure 的简单性。
生成的代码使用clojure.reflect/reflect 和clojure.pprint/print-table
和标准的clojure filter:
(require 'clojure.reflect)
(require 'clojure.pprint)
(->> (clojure.reflect/reflect java.lang.String)
:members
(filter #(.startsWith (str (:name %)) "last"))
(clojure.pprint/print-table))
【讨论】:
show 的一个很酷的地方是它既适用于实例,也适用于类型(参见 stackoverflow.com/questions/5821286)。您是否知道任何显示如何打印 Java 类实例的实例变量值的示例(例如在 Clojuredocs 或博客中)? clojure.repl 命名空间似乎不够用 (clojure.github.io/clojure/clojure.repl-api.html)
我建议您参考 Where Did Clojure.Contrib Go 文档,其中提到了 clojure.contrib.repl-utils:
迁移到 clojure.repl 和 clojure.java.javadoc。显示类似于 clojure.reflect/reflect 的功能。
【讨论】: