【问题标题】:Scala Generics Type ConstraintsScala 泛型类型约束
【发布时间】:2013-04-01 16:50:01
【问题描述】:

我现在正在阅读Programming Scala。我刚刚看完了关于隐式类型转换的章节,其中介绍了<% 符号。还有一个<: 符号和一个< 符号。

有人可以总结一下不同的类型约束吗?例如,我正在努力解决 <:< 之间的区别。我很好奇是否还有其他我尚未介绍的内容。

【问题讨论】:

标签: scala generics type-constraints


【解决方案1】:

没有称为<的类型约束。

A <: B 意味着A 字面上是B 的子类型(其中子类型是自反定义的,这意味着对于任何类型T 都是T <: T)。

A <% B 表示AB 的子类型,或者存在从AAA 的不同类型AA <: B 的隐式转换。这称为“视图边界”。

A >: B 表示AB 的超类型。

【讨论】:

  • 你是对的,没有< 约束。 >: 约束呢?
  • 我刚开始阅读关于实现List 的章节。它解释了>: 可用于在将Orange 添加到List[Apple] 时创建List[Fruit]。这是一个非常有趣的约束。
  • 更准确地说:A
猜你喜欢
  • 2011-01-17
  • 1970-01-01
  • 1970-01-01
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多