2011-02-04 79 views
7

我可以声明一个抽象类,如Scala的类型层级识别功能

type A[B] 

和在子类中定义为

type A[B] = Option[B] 

如果我想A至是一个选项。如果我想让A成为B本身,我可以这样做:

type A[B] = B 

我可以使用类型参数而不是类型成员实现相同的功能吗?

回答

6

尝试kinded更高参数:

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

type Id[A] = A 

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

甚至,`型foo2的符= [({式ID [A] =一})#ID})]` – retronym 2011-02-04 06:45:12