类型参数中的Scala类型级别标识函数

n8h*_*han 7 types scala

我可以声明一个抽象类型,如

type A[B]
Run Code Online (Sandbox Code Playgroud)

并在子类中定义为

type A[B] = Option[B]
Run Code Online (Sandbox Code Playgroud)

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

type A[B] = B
Run Code Online (Sandbox Code Playgroud)

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

Dan*_*wak 6

尝试更高级的参数:

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

type Id[A] = A

type Foo1 = Foo[Option]
type Foo2 = Foo[Id]
Run Code Online (Sandbox Code Playgroud)