gpt4 book ai didi

scala - 如何从方法返回可选信息?

转载 作者:行者123 更新时间:2023-12-04 00:32:22 24 4
gpt4 key购买 nike

一般的问题是除了计算的实际结果之外,如何从方法中返回额外的信息。但我希望,可以默默地忽略这些信息。

以方法dropWhile为例在 Iterator .返回的结果是变异的迭代器。但也许有时我可能对丢弃的元素数量感兴趣。

dropWhile的情况下,可以通过向迭代器添加索引并随后计算丢弃的步骤数来在外部生成此信息。但一般来说这是不可能的。

我的简单解决方案是返回一个包含实际结果和可选信息的元组。但是,每当我调用该方法时,我都需要处理元组 - 即使我对可选信息不感兴趣。

所以问题是,是否有一些巧妙的方法来收集这些可选信息?

也许通过 Option[X => Unit]带回调函数的参数默认为 None ?还有更聪明的吗?

最佳答案

这里只有我的两分钱……

你可以这样声明:

case class RichResult[+A, +B](val result: A, val info: B)

隐式转换为 A :
implicit def unwrapRichResult[A, B](richResult: RichResult[A, B]): A = richResult.result

然后:
def someMethod: RichResult[Int, String] = /* ... */

val richRes = someMethod
val res: Int = someMethod

关于scala - 如何从方法返回可选信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6467276/

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