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

scala – 未来[任何]与未来之间的区别[_]

发布时间:2020-12-16 10:00:33 所属栏目:安全 来源:网络整理
导读:好吧,我想问题已在标题中完成. 什么都不大,但我只是想知道.我有一个方法返回正确的值或错误代码枚举项.例如这样的事情: def doMyStuff(): Future[_] = { val result = db.queryMyData().map { case some(data) = val modifiedData = data.doStuff() modifie
好吧,我想问题已在标题中完成.
什么都不大,但我只是想知道.我有一个方法返回正确的值或错误代码枚举项.例如这样的事情:

def doMyStuff(): Future[_] = {
    val result = db.queryMyData().map {
        case some(data) =>
            val modifiedData = data.doStuff()
            modifiedData
        case None =>
            Errors.THIS_IS_FALSE
    }
    result
}

db.queryMyData()返回Future,data.doStuff()只修改数据.

现在我直观地写了Future [_],导致返回值很灵活.但是在查看其他图书馆时,我看过Future [Any].当你在返回函数时使用匹配大小来检查它是哪个数据时,这似乎也是逻辑.

使用它的代码例如是这样的:

doMyStuff().map {
    case data: MyDataType => // Blah blah
    case Errors.Value => // error handling
}

所以,我的问题是:在这里使用Any或_之间有什么区别,为什么我要使用正确的?

解决方法

这是一个语义问题:

存在类型T [_]表示在_的位置有一个类/类型,我根本不在乎它,但它必须在那里.

T [Any]意味着必须有子类任何存在.

当您想序列化基础类时,差异就会发挥作用.如果你只使用没有任何类型的_,你将无法使用许多Scala JSON库中的一些.

(编辑:李大同)

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

    推荐文章
      热点阅读