scala 函数类?

149 阅读1分钟

一: 函数的基本使用

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

//参数:
//1.如果没有参数 在定义函数时 可以省略() 在调用函数的时候 就不能添加()

二: 定义函数

// 作用:找到x y中的较大者
def max(x: Int,y: Int):Int = {
  if(x > y )
    x
  else
    y
}


 //如果没有参数 可以省略()
  def say():Unit = {
    println("hello world!")
  }


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

    say()

    var rst = max (2,3)//调用函数
    println(s"23的较大者是:${rst}")
  }
}
// 定义函数
// 作用:找到x y z中的最大者
def max(x: Int,y: Int,z: Int):Int = {
  //自行修改代码 完成功能
  if(x > y )
    x
  else
    y
}


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

  var rst = max (2,3,100)//调用函数
  println(s"较大者是:${rst}")
}

三: 函数返回多个数据

//作用:找到x y z中的最大者 和 最小值
//(Int,Int)是返回值的类型 表示这个函数的返回值中有两个整数

def max(x:Int,y:Int,z:Int) = {
  var maxValue = if(x > y) x else y  //x 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(100,20,200) //调用函数
  println(s"最小值是:${rst._1},较大者是:${rst._2}")
}

四: 元组

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

五:参数默认值

//参数默认值:如果在调用的时候 没有传入 就使用这个默认值
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)
}