定义函数
格式如下:
函数调用
格式:返回值=函数(参数) 两数求和
def getSum(x:Int, y:Int): Int = {
x + y
}
val s = getSum(10,20)
printf(s)
函数规则
1.只有一行可以省略{}。当Scala的函数体中只有一行表达式时可以省略{},输出结果依然不变。
2.最后一条语句为函数的返回值。当函数体中有多个语句存在时,返回最后一条语句的值。
3.函数的返回类型可以省略。它会自动推断。
4.函数没有形参,在定义函数时可以省略(),那么在调用函数时也不需要添加() 返回值
def getMax(x: Int, y: Int): Int = {
if (x > y)
x
else
y
}
函数返回多个值
如何改造上面的代码,让函数返回最大值和最小值数据?
println → 改写()
// 定义一个函数,计算三个数中的最大值和最小值
def getMaxAndMin(x: Int, y: Int, z: Int)= {
// 在函数中,返回多个值!
var max = x // 假设最大值为x
if(y > max) max = y
if(z > max) max = z
// println(s"最大值为: $max")
var min = x // 假设最小值为x
if(y < min) min = y
if(z < min) min = z
// println(s"最小值为: $min")
// 同时返回最大,最小值
// 元组
(min,max)
}
元组
元组表示不同类型值的集合,即元组可以用于存放不同类型的元素,例如可以存放整型、字符串、浮点型、自定义类型等等。Scala的元组类型可以使方法同时返回多个值,省略了中间部分的解析和集合的遍历。 定义元组:
第一种表示方式为:(元素1,元素2,…元素N)
第二种表示方式为:new TupleN(元素1,元素2,…元素N)。N最大为22
访问元组
元组通过Tuple_INDEX的方式访问元组中的元素,Tuple表示元组,INDEX表示索引。
t = new Tuple2(1,2); println(t._1, t._2)