在Scala中访问type-member

时间:2015-03-26 02:10:35

标签: scala types

我有一个类型为T的玩具类。

class A { type T = Int }

如何访问我的类型成员。例如获取类型或修改它。

val a = new A
a.T = String //error: value T is not a member of A

由于T是我的会员,为什么我无法访问它?

2 个答案:

答案 0 :(得分:3)

类型成员更像是普通参数而不是普通类成员。与通用参数一样,您无法重新指定类型参数或从类的实例访问它。阅读有关类型成员here的更多信息,以及抽象类型和通用参数here之间的区别。

答案 1 :(得分:1)

您无法将其作为值访问,但您可以将其作为类型访问:

scala> class A { type T = Int }
scala> val a = new A
scala> val someInt: a.T = 5
someInt: a.T = 5