好的,我想问题已经在标题中完成了。 没什么大的,但我只是想知道。我有一个方法返回一个正确的值或错误代码枚举项。例如这样的事情:未来[任何]和未来之间的区别[_]
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()
返回一个未来,而只是data.doStuff()
修改数据。
现在我直观地写了Future[_]
,导致返回值很灵活。但是,当我在其他库中查看时,我已经看到使用了Future[Any]
。这似乎也是逻辑,当你在函数返回时使用一个匹配的情况来检查它是哪个数据。
它使用的代码,例如这样的事情:
doMyStuff().map {
case data: MyDataType => // Blah blah
case Errors.Value => // error handling
}
所以,我的问题是:什么是使用任何或的区别_这里,为什么我应该使用正确一个?
我想关闭这个有利于它是重复的:http://stackoverflow.com/questions/15186520/scala-any-vs-underscore-in-generics。我有金锤,所以我想在获得其他人的反馈意见之前将其标记为重复并因此将其关闭。 – cmbaxter
我只是想建议使用'任何[错误,数据]'而不是'任何' –
@Łukasz:如果只有两个可能的返回类型,就像这个例子中的任何一个都可以工作。而且要么看起来不那么干净*并且对我来说是可读的,尤其是对于匹配中的'左(blah)'情况。或者当使用'Either'时真正的优势是什么? – Wolfsblvt