[英]Does shapeless for Scala 2 has analogue for Scala 3 union types?
Scala 3 有很方便的聯合類型。 我正在為 Scala 2 尋找更接近shapeless
的東西,以允許類似的行為。 例子:
case class Cs1()
case class Cs2()
我試過shapeless.v
,但它似乎並沒有像我想象的那樣工作。
val v: Cs1 v Cs2 = Cs1() // compile error
錯誤:
[error] found : example.Hello.Cs1
[error] required: example.Hello.Cs1 ∨ example.Hello.Cs2
有什么東西是無形的嗎?
shapeless.∨
用於上下文邊界,不能在返回類型中使用它。
def foo[T: (Cs1 |∨| Cs2)#λ] = ???
foo[Cs1] // compiles
foo[Cs2] // compiles
foo[Int] // doesn't compile
也可以看看
https://milessabin.com/blog/2011/06/09/scala-union-types-curry-howard/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.