【问题标题】:: _* notation in scala [duplicate]: _* scala 中的符号[重复]
【发布时间】:2017-09-27 13:44:13
【问题描述】:

我在许多 spark-scala 答案中遇到了这个:_* 符号,但找不到任何文档。实际上是什么意思?这种用法的一个例子是这个问题的答案

How to use DataFrame filter with isin in Spark Java?

行:

df.filter(col("something").isin(list: _*)

【问题讨论】:

标签: scala


【解决方案1】:

为了理解它,让我们举个例子

scala> def echo(args: String*) =
for (arg <- args) println(arg)
echo: (args: String*)Unit

scala>  val arr = Array("What's", "up", "doc?")
arr: Array[String] = Array(What's, up, doc?)

scala> echo(arr)
<console>:14: error: type mismatch;
 found   : Array[String]
 required: String
       echo(arr)
scala> echo(arr: _ *)
What's
up
doc?

这个符号,arr:_* 告诉编译器将 arr 的每个元素作为其自己的参数传递给 echo,而不是将其全部作为单个参数。

【讨论】:

    猜你喜欢
    • 2011-04-03
    • 2012-10-31
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    相关资源
    最近更新 更多