请在2024年Clojure调查!分享您的想法。

欢迎!有关如何使用此服务的更多信息,请查看关于页面。

+1

已关闭

我在宏展开(with-open ...)时注意到一些奇怪的现象。

(finally ...)部分看起来像这样
(finally (. stream clojure.core/close))

尽管这段代码可以工作,但我感觉它并不正确。
我假设,如果在未来某个时刻,函数clojure.core/close被添加到核心命名空间,它可能会出错。

我是对的,还是,也许方法close被命名空间限定的事实并不重要,因为任何进入点特形式调用(. object method)的函数都将被视为方法名称,无论其命名空间如何?

已关闭,备注:为1.12.0-alpha2应用补丁

2 个答案

0

选中
 
最佳答案

在展开方面,这似乎是一个错误(应该是(. stream close)),但您是正确的——点形式忽略了method符号的命名空间。

+1

是的,展开时应该更干净(但编译时会忽略)。已添加任务单和补丁

https://clojure.atlassian.net/browse/CLJ-2683

...