34、Scala类型系统详解

Scala类型系统详解

1. 引言

Scala类型系统的部分复杂性源于对Java类型系统特性的支持,这是为了实现互操作性。接下来,我们先从参数化类型开始回顾。

2. 参数化类型

我们已经在多处遇到过参数化类型。下面将回顾一些细节,并补充一些新的知识。

2.1 方差注解

方差注解的工作方式如下:
- List[+A] 表示 List 由单一类型 A 参数化, + 是方差注解,表明 List 在类型参数上是协变的。例如, List[String] List[AnyRef] 的子类型,因为 String AnyRef 的子类型。
- - 方差注解表示类型在类型参数上是逆变的。例如 Function2[-T1, -T2, +R] ,函数参数类型必须是逆变的。

2.2 类型构造器

类型构造器用于创建特定类型,类似于类的实例构造器用于构造类的实例。例如, List List[String] List[Int] 的类型构造器。实际上,所有类都是类型构造器,没有类型参数的类可视为零类型参数的“参数化类型”。

2.3 类型参数名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值