一小段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][],但是我不会初始化这个东西啊、、

阅读 5.4k
2 个回答

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)) 这样创建。

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进