一. 定义函数
格式如下:
二. 函数调用
格式: 返回值=函数(参数)
编码示例: 两数求和
// 返回值,可以省略return
def max(x: Int, y: Int): Int = {
if (x > y) {
x
} else {
y
}
}
def main(args: Array[String]): Unit = {
// 调用函数
val s = max(10, 20)
println(s)
}
结果如图:
三. 函数规则
1.只有一行可以省略{}。当Scala的函数体中只有一行表达式时可以省略{},输出结果依然不变。
2.最后一条语句为函数的返回值。当函数体中有多个语句存在时,返回最后一条语句的值。
3.函数的返回类型可以省略。它会自动推断。
4.没有形参,可以省略()
/**
* 特殊的写法
* 1. 没有参数列表,可以省略 调用的时候,也不需要再加上()
* 2. 函数的最后一条语句为函数的返回值
* 3. 如果函数体只有一行代码,则可以省略{}
*/
def getSum(x:Int, y:Int) :Int = x + y
def doSomething: Int = {
println("xxx")
"11"
1
}
// 返回值,可以省略return
def max(x: Int, y: Int): Int = {
if (x > y) {
x
} else {
y
}
}
def main(args: Array[String]): Unit = {
doSomething
println(getSum(2, 2))
// 调用函数
val s = max(10, 20)
println(s)
}
结果如图:
练习
- 定义一个函数,求三个数中的最大值
def max(x: Int, y: Int, z: Int): Int = {
if(x > y && x > z) {
x
} else if(y > x && y > z) {
y
} else {
z
}
}
def main(args: Array[String]): Unit = {
// 调用函数
val s = max(10, 20, 25)
println(s)
}
结果如图:
- 定义一个函数,求三个数中的最小值
def min(x:Int, y:Int, z:Int):Int = {
val c = if (x < y) {
x
} else {
y
}
if(c > z) {
c
} else {
z
}
}
def main(args: Array[String]): Unit = {
// 调用函数
val m = min(1,10,100)
println(m);
}
结果如图:
四. 函数返回多个值
定义一个函数,求三个数中的最大值和最小值
def getMaxandMin(x:Int, y:Int, z:Int): (Int, Int) = {
var min:Int = x
var max:Int = x
min = if(x < y) { x } else { y }
min = if(min < z) { min } else { z }
max = if(x < y) { y } else { x }
max = if(max < z) { z } else { max }
//println(min, max)
(min, max)
}
def main(args: Array[String]): Unit = {
// 调用函数
val r = getMaxandMin(10,2,3)
println(s"最小值是${r._1}")
println(s"最大值是${r._2}")
}
结果如图:
五. 元组
元组表示不同类型值的集合,即元组可以用于存放不同类型的元素,例如可以存放整型、字符串、浮点型、自定义类型等等。Scala的元组类型可以使方法同时返回多个值,省略了中间部分的解析和集合的遍历。
定义元组:
第一种表示方式为:(元素1,元素2,…元素N)
第二种表示方式为:new TupleN(元素1,元素2,…元素N)。N最大为22
访问元组
元组通过Tuple_INDEX的方式访问元组中的元素,Tuple表示元组,INDEX表示索引。