[英]Type mismatch with generics sum type
我有一個總和特征,如下所示:
sealed trait Sum[+A, +B]
final case class Failure[A](value: A) extends Sum[A, Nothing]
final case class Success[B](value: B) extends Sum[Nothing, B]
當我嘗試創建一個新變量時:
val s1: Sum[Int, Nothing] = Success(4)
我遇到以下錯誤:
Error:(5, 41) type mismatch;
found : Int(4)
required: Nothing
val s1: Sum[Int, Nothing] = Success(4)
為什么?
以及為什么這樣做:
val s1: Sum[Int, Int] = Success(4)
因為B
是第二個類型參數,而不是第一個:
val s1: Sum[Nothing, Int] = Success(4)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.