7

所以我定义了一个关键字:

(def a :hello)

如何检查它是否实现了 IFn 接口?

4

1 回答 1

15

对于一般情况,您可以使用instance?谓词:

(instance? <class-or-interface> <object>)

引用文档:

(instance? c x)计算 x 并测试它是否是类 c 的实例。返回真或假。

例如:

(instance? java.lang.String "test")
> true

(instance? java.io.Serializable "test")
> true

对于问题中的代码,请执行以下操作:

(instance? package.of.IFn a)

或者,正如评论中所指出的,对于询问是否a是这样的一个实例的非常具体的情况IFn将起作用:

(ifn? a)
于 2012-08-29T04:00:04.513 回答