函数的基本使用

55 阅读2分钟

定义函数:

格式如下:

Snipaste_2025-10-13_15-11-48.png

函数要点:

1.特别注意要写=

2.返回值类型要指定

返回值类型:

函数内的最后一个表达式或者语句的值,就是函数的返回值。

Unit 表示没有返回值,调用这个函数时,不会接收到任何的处理结果

函数规则:

  • 只有一行可以省略{}。当Scala的函数体中只有一行表达式时可以省略{},输出结果依然不变。
  • 最后一条语句为函数的返回值。当函数体中有多个语句存在时,返回最后一条语句的值。
  • 函数的返回类型可以省略。它会自动推断。
  • 函数没有形参,在定义函数时可以省略(),那么在调用函数时也不需要添加()
object day28 {
  //定义一个函数
  //功能:尔两个数较大者
  //格式:
  //    1.有一个 =
  //     2.返回值类型
  //        函数内的最后一个表达式或者语句的值,就是函数的返回值
  //        Unit 表示没有返回值,调用这个函数时,不会接收到任何的处理结果
  //
  def max(x:Int,y:Int):Int={
    val t=if(x>y) x else y

    t//就是返回值
  }
  //如果一个函数不需要参数,可以省略()
  def say():Unit={
    printf("hahaha!!!")
  }
  def main(args: Array[String]): Unit = {
    val rst = max(1,100)
    println(s"${rst}")
    //调用一个没有()的函数,也不要加()
    say
  }
}

函数调用:

格式:返回值=函数(参数列表)

示例:两数求和
def getSum(x:Int, y:Int): Int = {
     x + y
}
val s = getSum(10,20)
printf(s)

求三个数的较大者

object day29 {
  // 定义一个函数
  //功能:求三个数的较大者
  /*
     1.三选一
     if(x>=y && x>=z){
       x
     }else if(y>=x && y>=z){
       y
     }else{
       z
     }
     2.两次 二选一
     var t=if(x>y) x else y
     if(t>z) t else z
   */
  def max(x:Int,y:Int,z:Int):Int={
    var t=if(x>y) x else  y
    if(t>z) t else z
  }
  def main(args: Array[String]): Unit = {
    val rst=max(1,10,100)
    println(s"${rst}")
  }
}

求三个数的最大值和最小值

object day30 {
  //定义一个函数
  //功能:求三个数的最大值和最小值
  //注意:函数需要返回多个值
  def max(x:Int,y:Int,z:Int):(Int,Int)={
    var maxValue=if(x>y) x else  y
    maxValue=if(maxValue>z) maxValue else z

    var minValue=if(x>y) y else x
    minValue=if(minValue>z) z else  minValue
    //println(minValue,maxValue)
    (minValue,maxValue)//是一个整体
  }

  def main(args: Array[String]): Unit = {
    val rst=max(150,300,1000)
    //访问这个整体中的某个值: ._数字
    println(s"最小值是:${rst._1},最大值是:${rst._2}")
  }
}