首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scala和dotty的下限和上限类型

scala和dotty的下限和上限类型
EN

Stack Overflow用户
提问于 2018-10-07 09:21:49
回答 1查看 181关注 0票数 0

Martin 提到过说,他们在dotty中引入了复合类型和交叉类型。在他的幻灯片上有两张图片,代表新旧系统上下界的差异。

这是旧的那个:

这是一个新的:

有人能解释一下upper bound对于T <: U到底意味着什么吗?为什么当前版本的scala是无限的?例如,对于T >: U来说,它会有多大的不同。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-07 10:32:25

如果T <: U (即TU的子类型或UT的超级类型),那么UT上限,而TE 110下限<代码>E 211用于U

在Scala 2中

代码语言:javascript
复制
T with U <: T
T with U <: U
U with T <: T
U with T <: U

在多蒂

代码语言:javascript
复制
T & U =:= U & T
T | U =:= U | T
T & U <: T
T & U <: U
T <: T | U
U <: T | U

如果T <: U那么

代码语言:javascript
复制
T with U =:= T
T & U =:= T
T | U =:= U

如果是T >: U,那么U <: T和反之亦然

代码语言:javascript
复制
T with U =:= U
T & U =:= U
T | U =:= T

在Scala 2中,如果TU来自不同的继承层次结构(或者更准确地说,是子类型层次结构),那么最好的方法是

代码语言:javascript
复制
T <: Any
U <: Any

在这个意义上,上限是无限的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52687112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档