首页 > 一小段scala代码看不懂?

一小段scala代码看不懂?

  def collect(): Array[T] = withScope {
    val results = sc.runJob(this, (iter: Iterator[T]) => iter.toArray)
    Array.concat(results: _*)
  }
  

里面的results是个数组Tuple3[n][]
问下Array.concat(results: _*)是什么意思啊??

我想自己初始化一个Tuple3[n][],但是我不会初始化这个东西啊、、


results: _ 这个的意思是将 results 数组 unfold, 比如 result = [1, 2, 3] unfold 之后就变成了 1, 2, 3 这个 python 中也有类似的概念 python 中 list 是用 map 是用 **


concat 的签名大概是这样:
concat[T](arg: T*)
这叫 variable parameters,表示可以传不定个数的参数,比如:
cincat(t1, t2, t3)
在 concat 内部 arg 是一个 Sequence, 包含 t1 - 3 这些元素。

另外,也可以这样:

val s: Seq[T] = List(t1, t2, t3)
concat(s:_*)

也就是你代码中的写法。

Tuple3 的数组可以 Array((a,b,c), (e, f, g)) 这样创建。

【热门文章】
【热门文章】