2024 Clojure 状态调查!中分享您的想法。

欢迎!请参阅关于页面获取更多有关如何使用本站的信息。

0
记录和类型

defrecord 带位置参数的arity 工厂函数应当有一个内联版本,用于调用记录构造函数

4 个回答

0

评论者:gfredericks

我最近有这样一个想法,即工厂函数之所以有用,部分原因在于它是一个可重新定义的变量,例如可以将其与契约或其他内容一起包装。这个想法会阻止这一点。

但如果 ->Foo 的唯一目的是避免需要 {{:import}}(引入),这样做是有意义的。

0

评论者:hiredman

有趣,这是一个很好的观点

0

评论者:gfredericks

另一个想法 - 使用工厂函数而非直接使用构造函数提供了一点对代码重新加载问题的保护,不是吗?我对代码重新加载的具体问题并不了解,所以对此不是很自信。我的假设是编译代码引用的是变量而不是类。

0
参考资料:https://clojure.atlassian.net/browse/CLJ-864(由hiredman报告)
...