所以我定义了一个关键字:
(def a :hello)
Run Code Online (Sandbox Code Playgroud)
我如何检查它是否实现了IFn接口?
Ósc*_*pez 15
对于一般情况,您可以使用instance?谓词:
(instance? <class-or-interface> <object>)
Run Code Online (Sandbox Code Playgroud)
引用文档:
(instance? c x)评估x并测试它是否是类c的实例.返回true或false.
例如:
(instance? java.lang.String "test")
> true
(instance? java.io.Serializable "test")
> true
Run Code Online (Sandbox Code Playgroud)
对于问题中的代码,请执行以下操作:
(instance? package.of.IFn a)
Run Code Online (Sandbox Code Playgroud)
或者,正如评论中指出的那样,对于询问是否a是这样的实例的非常具体的情况IFn将起作用:
(ifn? a)
Run Code Online (Sandbox Code Playgroud)