获取Clojure结构类型的名称?

j-g*_*tus 12 struct clojure

在定义结构类型和实例时,我可以打印该值并获取"struct"实现类型:

(defstruct person :name :age)
(def p (struct person "peter" 30))

user=> p
{:name "peter", :age 30}
user=> (type p)
clojure.lang.PersistentStructMap
Run Code Online (Sandbox Code Playgroud)

但是有可能判断p是否是结构类型"人"的实例?

kot*_*rak 8

请参阅:Clojure Google Group中的这篇文章. 一般来说,团体档案是宝箱......

注意:结构的功能由记录替换.然后这不再是问题,因为记录确实定义了新类型,你可以检查instance?某些东西是否属于某种类型的记录.