2011-02-04 4 views
7

je peux déclarer un type abstrait tel quefonction identitaire niveau du type Scala dans un paramètre de type

type A[B] 

et dans une sous-classe définissent que

type A[B] = Option[B] 

si je veux un être une option . Et si je veux A à être lui-même B, je peux le faire:

type A[B] = B 

Puis-je obtenir la même chose avec des paramètres de type au lieu des membres de type?

Répondre

6

Essayez un paramètre supérieur kinded:

class Foo[A[_]] { ... } 

type Id[A] = A 

type Foo1 = Foo[Option] 
type Foo2 = Foo[Id] 
+1

Ou encore, 'type = foo2 Foo [({type Id [a] = a}) # Id})] ' – retronym

+1

@retronym - vous êtes porter des accolades incompatibles! Une ouverture et deux pour fermer ne peut pas être juste ... –

+0

Merci les gars, ce qui est utile! – n8han

Questions connexes