定义函数

45 阅读1分钟

object hai16 {
  //定义函数
  //作用:找到xy中较大的数
  def max(x: Int, y: Int): Int = {
    if (x > y)
      x
    else
      y
  }

  def main(args: Array[String]): Unit = {
    var rst = max(2, 3) //调用函数
    println(s"2 和 3的较大者是:${rst}")
  }
}

函数基本作用

返回值:

  1. 指定返回值类型
  2. 函数内,最后一个表达式(最后一句代码)就是函数的返回值
  3. Unit 表示这个函数没有返回值(void)

参数

  1. 如果没有参数 在定义函数时 可以省略()在调用函数的时候 就能不参加
//如果没有参数 可以省略
def say() :Unit = {
  println("hello world")
}

函数返回多个数据

  1. 作用:找到xyz中的最大值和最小值
  2. (int,int)是返回值的类型,表示这个函数的返回值中有两个整数

object hai18 {


  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) x else y
    minValue = if (minValue < z) minValue else z
    //返回一个容器 包含两个值
    (minValue, maxValue)
  }
  def main(args: Array[String]): Unit = {
    var rst = max(500,3,100)
    println(s"最小值是:${rst._1},较大者是:${rst._2}")

  }
}


bject hai19 {



  def main(args: Array[String]): Unit = {
    //元组把数据放在一个容器里
   var rst=(1,"a",1.75,"hello",true,2)
    //访问元组的数据编号
    println(rst._3)
  }
}

object hai20 {
  //参数默认值:如果在调用时候没有传入
  //格式:参数名:类型=默认值
  def greet(name: String = "小张", age: Int = 17, gender: String = "女"): Unit = {

  println(s"你好,我是${name},我今年${age}岁,我的性别是${gender}")
  }


  def main(args: Array[String]): Unit = {
    greet("小花",18,"女")
    greet("小花",18)
    greet("小花")
    greet()
    //设置年龄为20,其他两个参数使用默认值
    greet(age = 20)
    greet(gender = "男",age = 20)

  }
}