函数的基本使用

41 阅读2分钟

函数

一,函数参数的默认值

定义函数:

2.png

要点:
1,特别注意要写 =
2,返回值类型要指定

二,函数调用

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

编码示例:两数求和

def getSum(x:Int, y:Int): Int = {
     x + y
}  
val s = getSum(10,20)  
printf(s)
三,函数规则

1.只有一行可以省略{}。当Scala的函数体中只有一行表达式时可以省略{},输出结果依然不变。
2.最后一条语句为函数的返回值。当函数体中有多个语句存在时,返回最后一条语句的值。
3.函数的返回类型可以省略。它会自动推断。
4.函数没有形参,在定义函数时可以省略(),那么在调用函数时也不需要添加()

示例:返回值

def getMax(x: Int, y: Int): Int = {  
  if (x > y)  
    x  
  else  
    y
}

整理如下:

object day18 {

  // 定义函数
  // 功能:求两个数的较大者
  // 格式:
  //      1,有一个 =
  //      2,返回值类型。
  //          函数内的最后一个表达式或者语句的值,就是函数的返回值。
  //          Unit 表示没有返回值,调用这个函数时,不会接受到任何的处理结果。
  def max(x: Int,y:Int):Int ={
    val t = if(x>y) x else y

    t // 就是返回值
  }

  // 如果一个函数不需要参数,可以省略()
  //
  def say():Unit = {
    printf("hahahaha~~~")
  }

  def main(args: Array[String]): Unit = {
    val rst = max(1,100)

    println(s"${rst}")

    // 调用一个没有()的函数,也不要加()
    say
  }
}
例题:

求三个数中的最大值

object day19 {

    // 定义函数
    // 功能:求两个数的较大者
    // 分析:
  /*
  * 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):Int ={
      var t = if(x>y) x else y
      if(t>z) t else z
    }

    def main(args: Array[String]): Unit = {
      val rst = max(1000,200,100)

      println(s"${rst}")
    }
}
四,函数返回多个值
object day20 {

    // 定义函数
    // 功能:求三个数的最大值和最小值
    // 注意:函数需要返回多个值。把要放回的数据使用()包在一起,成为一个整体

    def max(x: Int,y: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(1000,200,100)
      println(s"最小值是:${rst._1},最大值是:${rst._2}")
    }
}
五,元组

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

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

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

println(t._3) println(t._4)

5.png