簡體   English   中英

類型與泛型求和類型不匹配

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM