【问题标题】:Is there a cross platform AutoCloseable Iterable solution for Scala?Scala 是否有跨平台的 AutoCloseable Iterable 解决方案?
【发布时间】:2021-11-08 05:03:34
【问题描述】:

am porting 一个库banana-rdf 到Scala3。该库旨在为用 Scala、JS(希望在某些时候甚至是原生的)编写的 RDF 库提供一个低成本高效的接口。

我目前正在实现返回 AutoCloseable 迭代器的 Jena 库,这让我想知道如何最好地处理这些。

  • 如果我将该类型转换为 scala Iterable,那么我会丢失其上的可关闭接口,从而丢失调用者应确保在使用前关闭它的信息;
  • 我查看了scala.util.Using,但这需要迭代资源,这是由调用代码确定的,而不是库;
  • 应该只返回 Java 迭代器吗?但我需要检查它是否与 ScalaJS 代码配合得很好
  • 其他想法?

【问题讨论】:

  • Scala 有自己的Iterators,与 Java 之间的转换应该相当便宜。你能做一个extends Iterator[Something] with AutoClosable 的包装吗?与 Java 不同,AutoCloseable 没有语法优势,所以 Closeable 可能就足够了。

标签: scala scala.js scala-3


【解决方案1】:

可以使用 Java Iterable 和 Closeable 接口,并以此为基础。

【讨论】:

    猜你喜欢
    • 2015-02-16
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    相关资源
    最近更新 更多