1.变长参数
例如定义一个变长参数的方法sum,然后计算1-5的和,可以写为
scala> def sum(args: Int*) = {
| var result = 0
| for (arg <- args) result += arg
| result
| }
sum: (args: Int*)Int
scala> val s = sum(1,2,3,4,5)
s: Int = 15
但是如果使用这种方式就会报错
scala> val s = sum(1 to 5)
<console>:12: error: type mismatch;
found : scala.collection.immutable.Range.Inclusive
required: Int
val s = sum(1 to 5)
^
这种情况必须在后面写上: _*将1 to 5转化为参数序列
scala> val s = sum(1 to 5: _*)
s: Int = 15
2.变量声明中的模式
例如,下面代码分别将arr中的第一个和第二个值赋给first和second
scala> val arr = Array(1,2,3,4,5)
arr: Array[Int] = Array(1, 2, 3, 4, 5)
scala> val Array(1, 2, _*) = arr
scala> val Array(first, second, _*) = arr
first: Int = 1
second: Int = 2