我正在使用一些 Java 代码调用toString()
在我的 Clojure 函数对象上,它返回类似的内容#<ns$something something.something$something@7ce1eae7>>
- 我想返回其他东西......大概有一种方法可以在函数中包含一些元数据,以便它们的对象'toString()
返回那个?
如果您只是想让对象的 REPL 打印输出更有意义,您可以实现defmethod print-method
对于有问题的班级。
这是我最近编写的一些代码的简化版本;这使得 Selenium-WebDriver WebDriver 对象的 REPL 打印输出更有意义:
(defmethod print-method WebDriver
[o w]
(print-simple
(str "#<" "Title: " (.getTitle o) ", "
"URL: " (.getCurrentUrl o) " >")
w))
这打印出来就像#<Title: A Title, URL: http://example.com >
Here, WebDriver
代表一个类;您可以通过实现来轻松地对内置 Clojure 数据结构执行此操作print-method
对于适当的课程(Clojure 的乐趣具有print-method
for clojure.lang.PersistentQueue
默认情况下没有很好的表示)。这o
上面是您正在处理的实际对象,并且w
是一个作家(这些类型的打印功能需要)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)