在Scala中,除了class、trait、object 会产生类型,还可以用type关键字声明类型。
- type 声明别名(alias)(通常用于声明复杂类型或定义一个抽象类型):
scala> type S = String
defined type alias S
声明复杂类型 (如:声明一个结果类型):
type T = Serializable { type U; def foo(): Unit }U是一个抽象类型。T类型的具体实例,如下:
scala> object A extends Serializable{ type X=String; def foo(){} } scala> typeOf[A.type] <:< typeOf[T] res19: Boolean = true抽象类型:
scala> trait A { type T ; def foo(i:T) = print(i) } scala> class B extends A { type T = Int } scala> val b = new B scala> b.foo(200) 200 scala> class C extends A { type T = String } scala> val c = new C scala> c.foo("hello") hello
本文介绍了Scala中的类型声明方法,包括使用type关键字声明类型别名、复杂类型及抽象类型的示例。通过具体实例展示了如何实现这些类型声明,并演示了它们的应用。

528

被折叠的 条评论
为什么被折叠?



