特征名称[+ Something]在scala中的含义是什么

Kil*_*yte 1 scala

我正在阅读scala默认库代码,发现这篇文章:

trait TraversableLike[+A, +Repr] extends Any
    with HasNewBuilder[A, Repr]
    with FilterMonadic[A, Repr]
    with TraversableOnce[A]
    with GenTraversableLike[A, Repr]
    with Parallelizable[A, ParIterable[A]]
{
    self =>
    ...
}
Run Code Online (Sandbox Code Playgroud)

究竟是做什么的?

Pab*_*lgo 7

在Scala中Generic[TypeParameter]是一种泛型类型,它接收一个类型作为参数.

Generic就像一个类型系列,可以在提供类型参数时使用.一个明显的例子是List"事物列表"的泛型类型,例如List[Int],后者是具体类型"整数列表".

另一方面,类型修饰符"+"之前TypeParameter用于确定泛型类型是否是协变的.同样," - "表示其逆转.

在此输入图像描述

来自Martin Ordesky的书(Scala编程):

在此输入图像描述

...

...

...

在此输入图像描述

最后,with将您的特征与指定的特征混合.