加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 09:13:21 所属栏目:安全 来源:网络整理
导读:一般的问题是如何从方法返回附加信息,而不是计算的实际结果.但是我想,这个信息可以默默地被忽略. 以例如在Iterator上的dropWhile方法.返回的结果是突变迭代器.但也许有时我可能会对下降的元素数量感兴趣. 在dropWhile的情况下,可以通过向迭代器添加索引并计
一般的问题是如何从方法返回附加信息,而不是计算的实际结果.但是我想,这个信息可以默默地被忽略.

以例如在Iterator上的dropWhile方法.返回的结果是突变迭代器.但也许有时我可能会对下降的元素数量感兴趣.

在dropWhile的情况下,可以通过向迭代器添加索引并计算之后的删除步数,从而可以在外部生成此信息.但一般来说这是不可能的.

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

那么问题是,是否有一些聪明的方式来收集这样的可选信息?

也许通过选项[X =>单位]参数与回调函数默认为无?有更聪明的东西吗?

解决方法

只是我这两分钱在这里

你可以声明这一点:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读