0
我有一個關於Scala變量的問題。val使用中的變化無效 - 錯誤:逆變類型U發生在協變位置
下面的代碼是有效的代碼,它通過編譯。
// <Code A>
// VALID (COMPILE PASS!)
class A[+T, -U](t: T, u: U)
但下面的代碼是無效的,它使用val
並且不通過編譯。
// <Code B>
// INVALID (COMPILE ERROR)
class A[+T, -U](val t: T, val u: U)
錯誤消息如下。
error: contravariant type U occurs in covariant position in type => U of value u
class A[+T, -U](val t: T, val u: U)
^
我不知道爲什麼<Code A>
是有效的,<Code B>
無效。有人能告訴我原因嗎?
謝謝你的回答! – redstone