11函数的基本使用

42 阅读2分钟

一. 定义函数

格式如下:

屏幕截图 2025-10-09 081236.png

二. 函数调用

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

编码示例: 两数求和

// 返回值,可以省略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)
}

结果如图:

屏幕截图 2025-10-09 082503.png

三. 函数规则

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)
  }

结果如图:

屏幕截图 2025-10-09 084155.png

练习
  1. 定义一个函数,求三个数中的最大值

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)
}

结果如图:

屏幕截图 2025-10-09 090523.png

  1. 定义一个函数,求三个数中的最小值
  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);
}

结果如图:

屏幕截图 2025-10-09 092355.png

四. 函数返回多个值

定义一个函数,求三个数中的最大值和最小值

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}")
}

结果如图:

屏幕截图 2025-10-11 081718.png

五. 元组

元组表示不同类型值的集合,即元组可以用于存放不同类型的元素,例如可以存放整型、字符串、浮点型、自定义类型等等。Scala的元组类型可以使方法同时返回多个值,省略了中间部分的解析和集合的遍历。

定义元组:

第一种表示方式为:(元素1,元素2,…元素N)

第二种表示方式为:new TupleN(元素1,元素2,…元素N)。N最大为22

访问元组

元组通过Tuple_INDEX的方式访问元组中的元素,Tuple表示元组,INDEX表示索引。