您的位置:首页 > 其它

Scala类型 8:type 关键字

2015-02-27 21:49 232 查看
在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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: