scala - Scala 是否有跨平台的 AutoCloseable Iterable 解决方案?
问题描述
我正在将一个库banana-rdf移植到Scala3。该库旨在为用 Scala、JS 编写的 RDF 库提供一个无成本高效的接口(希望在某些时候甚至是原生的)。
我目前正在研究返回 AutoCloseable 迭代器的Jena库的实现,这让我想知道如何最好地处理这些迭代器。
- 如果我将该类型转换为 scala,
Iterable
那么我会丢失其上的可关闭接口,从而丢失调用者应确保在使用它之前关闭它的信息; - 我看了看
scala.util.Using
,但这需要迭代资源,这是由调用代码确定的,而不是库; - 应该只返回 Java 迭代器吗?但我需要检查它是否与 ScalaJS 代码配合得很好
- 其他想法?
解决方案
可以使用 Java Iterable 和 Closeable 接口,并以此为基础。
推荐阅读
- optimization - 现有的 MODX 延迟加载
- ruby-on-rails - 如何在 FastJsonAPI 中将参数从控制器传递到序列化程序?
- asynchronous - java.lang.ClassNotFoundException:使用 camelahc 组件时未找到 org.reactivestreams.Publisher
- python - 使用 raw_input() 时在目录中查找文件的 python 选项卡功能
- c# - 具有依赖关系的 AddTransient
- sql-server - TFS 数据库增长迅速
- android - 如何在迁移期间删除未被任何其他对象引用的 Realm 对象?
- javascript - 如何获取指向 javascript 对象属性的链接数
- r - 过滤(dplyr)数据帧的R str函数
- swift - Xcode设置标签的文本来自另一个viewController传递的变量导致崩溃