【Scala】- Scala可变参数用法用法 ❤️❤️

用法

类似于 Java 中的 可变参数

def toDF(colNames: String*): DataFrame = {

用的时候直接在类型后面加 * 即可

注意

如果要讲数组作为参数直接传入 toDF 中是无法直接传入的 , 需要 使用下面这种方式

var gradesCols = Array("id", "name", "sex", "birthday", "className",  "phone",  "address")
val ds_t1 = t1.toDF(gradesCols: _*)

加上 _* 即可

补充

  1. 作为“通配符”,类似Java中的*。如import scala.math._
  2. :*作为一个整体,告诉编译器你希望将某个参数当作参数序列处理!例如val s = sum(1 to 5:*)就是将1 to 5当作参数序列处理。
  3. 指代一个集合中的每个元素。例如我们要在一个Array a中筛出偶数,并乘以2,可以用以下办法:
a.filter(_%2==0).map(2*_)

又如要对缓冲数组ArrayBuffer b排序,可以这样:

val bSorted = b.sorted(_)
  1. 在元组中,可以用方法_1, _2, _3访问组员。如a._2。其中句点可以用空格替代。
  2. 使用模式匹配可以用来获取元组的组员,例如
    val (first, second, third) = t
    但如果不是所有的部件都需要,那么可以在不需要的部件位置上使用_。比如上一例中
val (first, second, _) = t
  1. 还有一点,下划线_代表的是某一类型的默认值。
  • 对于Int来说,它是0。
  • 对于Double来说,它是0.0
  • 对于引用类型,它是null。❤️

你可能感兴趣的:(scala,可变参数,_的用法)