【问题标题】:How to ensure that type parameters are different in Scala?如何确保Scala中的类型参数不同?
【发布时间】:2010-09-30 15:42:33
【问题描述】:

通过以下定义,可以确保具体类型参数相等:

trait WithEqual[T1 >: T2 <: T2, T2]

所以这条线

type A = WithEqual[Int, Int]

将是合法的。现在我的问题是:如何达到完全相反的效果?因此,以下行应该编译:

type B = WithUnequal[Int, Int]

【问题讨论】:

    标签: generics scala


    【解决方案1】:

    这在 Scala 中相当棘手,您必须故意使用歧义。这是该技术的example

    Mark Harrah 在他的操场上概括了类型级黑客的技巧,Up

    这可能适用于您的问题,但我现在没有时间尝试。

    【讨论】:

      猜你喜欢
      • 2011-07-16
      • 1970-01-01
      • 2021-08-13
      • 2015-12-17
      • 1970-01-01
      • 2012-11-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多