将 Java 集合转换为 Clojure 数据结构
我正在使用返回 java.util.LinkedHashSet 的方法创建 Java API 的 Clojure 接口。
首先,处理此问题的惯用 Clojure 方法是将 LinkedHashSet 转换为 clojure 数据结构吗?
其次,将 Java 集合转换为 Clojure 数据结构的最佳方法是什么?
I am creating a Clojure interface to a Java API with a method that returns a java.util.LinkedHashSet.
Firstly, is the idiomatic Clojure way of handling this to convert the LinkedHashSet to a clojure data structure?
Secondly, what is the best method for converting Java collections into Clojure data structures?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
有很多选择,因为 Clojure 与 Java 集合配合得很好。这取决于您想在 Clojure 中使用哪种数据结构。
下面是一些示例:
关于何时使用其中的每一个,我建议以下建议:
There are lots of options, since Clojure plays very nicely with Java collections. It depends on exactly what data structure you want to use in Clojure.
Here's some examples:
Regarding when to use each of these, I'd suggest the following advice:
将 java 集合转换为 clojure 的惯用方法是使用 (seq) 函数,大多数对序列进行操作的函数都已调用该函数。
The idiomatic way to convert java collections to clojure is to use the (seq) function, which is already called by most functions operating on sequences.
老实说,我不知道是否存在普遍接受的做法,但 Chris Houser 争论 反对 Java 到 Clojure 适配器,因为您破坏了与原始 Java API 的兼容性。
要执行您要求的翻译,只需使用 into:
I honestly don't know if there's a universally accepted practice, but here's Chris Houser arguing against Java to Clojure adapters as you break compatibility with the original Java API.
To perform the translation you asked for, simply use into: