1
sealed trait Process[+F[_], +O]
/**
* Created by pach on 11/07/14.
*/
package object stream {
type Process0[+O] = Process[Nothing,O]
...
}
這是Process0如何定義的。爲什麼Process0沒有被定義爲過程[ID,O]
其實我不明白爲什麼這個編譯,因爲Nothing
概不Param類型。
要使用沒有影響
爲什麼不只是設置上下文類型˚F到值類型本身(使用身份類型構造,)表示的流。
type Process0[+O] = Process[Id, O]
爲什麼你不期望它編譯? 「Nothing」是編譯器知道的所有類型的子類型,即使你有一個複雜的類型,Nothing也不會是一個子類型。 – 2014-09-13 07:46:15
@EndeNeu寫'過程[+ F [_] + O]',我們實際上預計'F'有一種類型的參數,但'Nothing'不帶參數,所以,這是一個令人感到有點驚訝 – jilen 2014-09-13 07:48:48
我要說編譯器足夠聰明,知道無論類型是如何構造的,或者無論它需要多少類型參數,Nothing都不會是它的一個子類型,遺憾的是,這個主題沒有具體的內容。 – 2014-09-13 07:59:04