Clojure是否有类似于Java的import package.*的等价物?

21

我需要具体列举我要导入的每一个类吗?

我现在正在学习Clojure,看起来在REPL中能够这样做很有用:

(import '(java.io *))

虽然它不是有效的语法,但有一个相当的替代方案会很好。这可以节省一些打字时间,特别是在尝试时。实际上,在生产代码中,我总是枚举每个导入的类,无论语言如何,但不必这样做相当方便。

3个回答

21

4
真遗憾。我很欣赏他对为什么这不是一个好主意的想法,但我宁愿不要让语言限制我,特别是在 REPL 中玩耍时。 - Jeff
3
请注意,这是关于为什么在运行时无法高效完成的解释。在编译时可以使其正常工作(显然,这就是为什么你可以在Java中做到这一点的原因......) - mikera

2
除非我错过了更新,否则目前在Clojure中没有通配符包含命名空间的方式。

1

目前似乎没有办法做到这一点。导入宏仅用于将指定的类导入当前命名空间。我尝试编写另一个宏来实现您想要的功能,但是使用Clojure的类加载器似乎不可能让我们访问包资源。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接