(一)定义函数
格式如下:
(二)函数调用
object Base34 {
def main(args: Array[String]): Unit = {
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.函数没有形参,在定义函数时可以省略(),那么在调用函数时也不需要添加()
扩展提问:定义一个函数,求三个数的最大值
object Base36 {
def max(x:Int,y:Int,z:Int):Int = {
if(x >= y && x >= z){
x
}else if(z >= y && z >= x){
z
}else{
y
}
val c = if (x > y){
x
}else{
y
}
if(c > z) { c } else { z }
}
def main(x:Int,y:Int,z:Int):Int = {
1
}
def main(args: Array[String]): Unit = {
//调用函数
val s = max(100,100,100)
println(s);
val m = min(1,10,100)
println(s);
}
}
(四)函数返回多个值
object Base37 {
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 = {
var r = getMaxandMin(10,20,3)
println(s"最小值${r._1}")
println(s"最大值${r._2}")
}
}
(五)元组
定义 元组:
第一种表示方式为:(元素1,元素2,…元素N)
第二种表示方式为:new TupleN(元素1,元素2,…元素N)。
访问元组
元组通过Tuple_INDEX的方式访问元组中的元素,Tuple表示元组,INDEX表示索引。
t = new Tuple2(1,2); println(t._1, t._2)