-
<-
:遍历序列val a = Array(2, 3, 5, 7, 11) val b = for(elem <- a) yield 2*elem // Array[Int] = Array(4, 6, 10, 14, 22)
1. =>
https://blog.csdn.net/ydc321/article/details/79135761
函数定义如下:
val compareElement:((String,Int),(String,Int)) => (String,Int) = (val1,val2) => {
if (val1._2 >= val2._2){
val1
} else {
val2
}
}
说明如下:
- 1、用val定义函数,compareElement函数是匿名函数
- 2、
((String,Int),(String,Int)) => (String,Int)
:函数签名
compareElement函数的函数类型声明,左边是输入参数类型(入参为两个二元tuple),右边是方法返回值类型(返回值也是二元tuple) - 3、
(val1,val2) => {......}
:函数定义,左边是参数,右边是函数实现体
2. _*
https://blog.csdn.net/wyz0516071128/article/details/81042667
-
变长参数中使用
例如定义一个变长参数的方法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
如果直接使用 Range 对象便会报错(type mismatch,类型不匹配错误):
scala> sum(1 to 5) error: type mismatch; found : scala.collection.immutable.Range.Inclusive required: Int scala> sum(1 to 5: _*) 15