函数的基本使用

58 阅读2分钟

一.定义函数

格式如下:

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

二.函数调用

[格式]:返回值=函数(参数) 两数求和

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)