2010-09-30 6 views
4

la définition suivante il est possible d'assurer que les paramètres de type béton sont égaux:Comment vous assurer que les paramètres de type sont différents dans Scala?

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

Ainsi, la ligne

type A = WithEqual[Int, Int] 

sera légal. Maintenant, ma question est: Comment atteindre exactement le contraire? Ainsi, la ligne suivante devrait pas compilation:

type B = WithUnequal[Int, Int] 

Répondre

10

Ceci est assez difficile à Scala, il faut recourir à l'ambiguïté intentionnelle. Voici une example de cette technique. Mark Harrah a généralisé l'astuce dans son terrain de jeu pour le hackery de type-type, Up.

Il est probable que cela puisse s'appliquer à votre question, mais je n'ai pas le temps d'essayer maintenant.

Questions connexes