在Clojure中,我总是使用。记法,即
(.methCall obj args)
但是,有没有一种方法可以在不使用点符号的情况下调用该方法?相当于";应用";当我打开时
(f x y)
进入
(apply f x y)
我想这样做是为了编写一个宏,它可以将方法名作为参数之一,并在对象上调用它。
有点特殊形式的
例如
user=> (. (bigint 42) toString)
"42"
您正在使用的表格在会员访问下,是一个快捷方式:
user=> (macroexpand '(.toString (bigint 42)))
(. (bigint 42) toString)
上述文件说明了以下扩展:
(.instanceMember instance args*) ==> (. instance instanceMember args*) (.instanceMember Classname args*) ==> (. (identity Classname) instanceMember args*) (.-instanceField instance) ==> (. instance -instanceField) (Classname/staticMethod args*) ==> (. Classname staticMethod args*) Classname/staticField ==> (. Classname staticField)