gpt4 book ai didi

Scala 优雅的列表理解,如 F#

转载 作者:行者123 更新时间:2023-12-04 05:03:59 24 4
gpt4 key购买 nike

只需使用基本的 JDBC 接口(interface)使用 Scala 读取一些数据。
在 F#(使用 System.Data.SqlClient 命名空间)中,我们可以执行类似的操作来从数据库返回一个不可变列表。

    let rs = cmd.ExecuteReader()
[while rs.Read() do yield rs.GetInt32(1)]

在 Scala 中,这被证明更加困难,据我所知,没有像 F# 这样的“while”理解。实际上,我想在 Scala 中做一些接近 F# 的事情,而不必使用可变变量——如果只是因为它们看起来很难看并添加到代码行中。

现在,在我的 Scala 代码中,这样的事情似乎很常见:
 var result = Seq.empty[Int]
val rs = stmt.executeQuery()
while (rs.next()) {
result = result :+ rs.getInt(1) }

最佳答案

我将创建 Iterator 的自定义子类包装查询结果。这真的很容易;塞尼亚展示了如何。

但你也可以

val rs = stmt.executeQuery
val it = Iterator.continually(if (rs.next()) Some(rs.getInt(1)) else None)
val result = it.takeWhile(_.isDefined).toList.flatten

关于Scala 优雅的列表理解,如 F#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17276649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com