假设一个函数返回一个大而深度嵌套的hashmap。你通过哪种方式研究它的结构?打印到控制台很困惑,使用clojure.pprint / pprint使它更好一些,但仍然没有给你一个概述。
如何理解它的数据结构?
答案 0 :(得分:2)
有几种方法可以检查地图:
clojure.inspector(正如@cfrick所述)
(require '[clojure.inspector :as inspector])
(inspector/inspect {:a 1 :b 2}) ;; #object[javax.swing.JFrame 0x1b730837 "javax.swing.JFrame[frame0,4,23,400x400,invalid,layout=java.awt.BorderLayout,title=Clojure Inspector,resizable,normal,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,22,400x378,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]"]
clojure pretty-printing,请注意您可以customize它的行为。另外,如果您想删除不需要的值,请不要忘记只使用select-keys
或dissoc
保留所需的密钥。