Scala类型系统深度解析
1. 复合类型(Compound Types)
复合类型是由多个类型组合而成的类型。当声明一个结合了多种类型的实例时,就会得到复合类型。例如:
trait T1
trait T2
class C
val c = new C with T1 with T2 // c的类型: C with T1 with T2
在这个例子中, c 的类型是 C with T1 with T2 。这是声明一个扩展 C 并混入 T1 和 T2 类型的替代方法。需要注意的是, c 被视为这三种类型的子类型:
val t1: T1 = c
val t2: T2 = c
val c2: C = c
2. 类型细化(Type Refinements)
类型细化是复合类型的一个附加部分,与 Java 中的匿名内部类概念相关。在 Java 中,通常会提供一个实现某些接口的匿名内部类,添加方法实现和可选的额外成员。例如对 java.util.List 进行排序:
List<C> listOfC = ...
java.util.Collections.sort(listOfC,
超级会员免费看
订阅专栏 解锁全文
76

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



