一.定义函数
格式如下:
二.函数调用
[格式]:返回值=函数(参数) 两数求和
def getSum(x:Int, y:Int): Int = {
x + y
}
三.函数规则
1.只有一行可以省略{}。当Scala的函数体中只有一行表达式时可以省略{},输出结果依然不变。
2.最后一条语句为函数的返回值。当函数体中有多个语句存在时,返回最后一条语句的值。
3.函数的返回类型可以省略。它会自动推断。
4.没有形参,可以省略()
object Base30 {
// 定义一个函数
// 1.位置:可以写在main里面,也可以写在外面
// 2.要点
// 返回值的类型
// 省略return
/*
* 特殊的写法
* 1.没有参数列表,可以省略定义函数时的(),那么调用的时候,也不需要再加上()
* 2.函数的最后一条语句为函数的返回值
* 3.如果函数体只有一句代码,则可以省略{}
*/
def getSum(x:Int,y:Int) :Int = x + y
def dosomething = {
println("xxx")
"11"
1
}
//返回值,可以省略return
def max(x:Int, y:Int):Int = {
if(x > y) {
x
} else {
y
}
}
}
例:求三个数中的最大值
object Base31 {
/** 定义一个函数
*定义一个函数,求三个数中的最大值
*/
def max(x:Int, y:Int, z:Int):Int = {
val c = if (x > y) {
x
} else {
y
}
if(c > z) { c } else { z }
}
/**
* 定义一个函数,求三个数中的最小值
*/
def min(x:Int, y:Int, z:Int):Int = {
1
}
def main(args: Array[String]): Unit = {
//调用函数
val s = max(100,100,100)
println(s); // 25
val m = min(1,10,100)
println(s); // 1
}
}
四.函数返回多个值
// 定义一个函数,计算三个数中的最大值和最小值
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)