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库中的一些. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |