好的,我想問題已經在標題中完成了。 沒什麼大的,但我只是想知道。我有一個方法返回一個正確的值或錯誤代碼枚舉項。例如這樣的事情:未來[任何]和未來之間的區別[_]
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