我正在尝试从Apache Spark的源代码中理解以下类声明:
class PairRDDFunctions[K, V](self: RDD[(K, V)])
(implicit kt: ClassTag[K], vt: ClassTag[V], ord: Ordering[K] = null)
extends Logging
with SparkHadoopMapReduceUtil
with Serializable
{
自我在这里是什么意思?它是否在类的其余部分中将self设置为等于传入的RDD?
答案 0 :(得分:3)
self
只是传递给构造函数的参数的名称。因此,对RDD的引用将通过名为self
的字段进行(如果它在类中的其他位置使用,则Scala编译器将创建相应的字段)。它类似于(一个更简单的例子)
class Point(x : Int, y : Int)
也许这里只有一些混淆,名称为self
和explicitly typed self references,通常称为self
class NodeImpl extends NodeIntf {
self: Node =>