对于" Box [+ T]",我可以说" Box类型是协变的",它是否正确?

时间:2014-06-16 07:56:48

标签: scala covariance type-systems

假设我定义了一个类型构造函数Box

trait Box[+T]

什么是正确的?

  1. type Box is covariant
  2. 类型构造函数Box是协变的
  3. 类型参数T是协变的
  4. 类型构造函数T中的
  5. 类型参数Box是协变的
  6. 如果所有这些都不正确,那么正确的表达方式是什么?

2 个答案:

答案 0 :(得分:5)

关于书籍Functional Programming in Scala的差异:

  

在声明trait List[+A]中,+位于...前面   类型参数A方差注释,表示 A   是List的协变或“正”参数。这意味着   例如,List[Dog]被认为是其子类型   List[Animal],假设DogAnimal的子类型。

答案 1 :(得分:1)

正确的是:

“类型Box在T”中是协变的