在Clojure中创建对象

Con*_*nan 1 macros clojure

在Clojure中有两种实现对象的方法,包括new函数或.宏:

(new Object)
(Object.)
Run Code Online (Sandbox Code Playgroud)

我见过的大多数代码都使用后一个宏.我意识到它更短,但前者对我来说似乎更具可读性.这只是一个偏好问题,但有技术原因使用后者的宏吗?

Jer*_*emy 5

不,他们完全一样.后者在宏观扩张时期扩展到前者.

  • 事实上:`(macroexpand '(Object.)) ;= (new Object)`。 (2认同)
  • 能够将构造函数和方法视为函数是很好的. (2认同)