函数的基本使用

49 阅读2分钟

定义函数

函数调用

object Base39 {
  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);

  }
}

特殊的写法

  • 没有参数列表,可以省略定义函数时的(),那么调用的时候,也不需要再加上()
  • 函数的最后一条语句为函数的返回值
  • 如果函数只有一句代码,可以省略
object Base39 {
  def getSum(x:Int,y:Int) :Int = x + y
  def dosomething: Int = {
    "11"  // 这里会报错,因为函数声明返回Int但实际返回String
    1
  }

  // 返回值,可以省略return
  def max(x:Int, y:Int):Int = {
    if(x > y) {
      x
    } else {
      y
    }
  }

  def main(args: Array[String]): Unit = {
    dosomething

    println( getSum(1,2) )  // 这里会报错,因为getSum函数未定义

    // 调用函数
    val s = max(10,20)
    println(s);
  }
}

函数规则

函数返回多个值

定义三个数中最大值 最小值

object Base40 {

  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 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
  }
}
object Base40 {

  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 min(x: Int, y: Int, z: Int): Int = {
    val c = if (x < y){x}else{y}
    if(c>z){z}else{c}
  }

  def main(args: Array[String]): Unit = {
    // 调用函数
    val s = max(100, 100, 100)
    println(s); // 25
    val m = min(1, 10, 100)
    println(m); // 1
  }
}
object Base41 {
    /**
     * 定义一个函数,返回三个数中的最大值和最小值
     */
    def getMaxAndMin(x: Int, y: Int, z: Int): (Int, Int) = {
      val maxNum = Math.max(Math.max(x, y), z)
      val minNum = Math.min(Math.min(x, y), z)
      (maxNum, minNum)
    }

    def main(args: Array[String]): Unit = {
      // 调用函数
      val result = getMaxAndMin(1, 2, 3)
      println(s"最大值:${result._1},最小值:${result._2}")
    }
  }