scala 函数的基本使用

55 阅读1分钟

1. 定义函数

1.1 作用:找到x,y中的较大者

1.2 案例:

object basic28 {
  /**
   * 函数的基本使用
   *
   * @param args
   */
// 定义函数
    // 作用:找到x,y中的较大者
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}")

  }
}

2. 返回值:

2.1 指定返回值类型

2.2 函数内,最后一个表达式(最后一句代码)就是函数的返回值

2.3 Unit 表示这个函数没有返回值(void)

3. 参数

3.1 如果没有参数,在定义函数时,可以省略()。在调用函数的时候,就不能添加()

3.2 案例:

 // 定义函数
  // 作用:找到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"2 和 3的较大者是:${rst}")

  }
}

4. 分析:

(1) 三选一

def max(x: Int, y: Int,z:Int): Int = {
    // 自行修改代码,完成功能
    if (x > y && x>z )
      x
    else if (y > x && y > z)
      y
    else
      z
  }

  // 如果没有参数,可以省略()
  def say : Unit = {
    println("hello world")
  }
  def main(args: Array[String]): Unit = {
    //say()//代码报错
    var rst=max(2,3,100)//调用函数
    println(s"2 和 3 和 100的较大者是:${rst}")

  }
}

(2) 两个选一个较大者!较大者和剩下的那个中选择一个

  // 定义函数
  // 作用:找到x,y中的较大者
  def max(x: Int, y: Int,z:Int): Int = {
    val rst=if(x>y) x else y// x,y的较大者
    if(rst>z)rst else z

  }


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

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

  }

5. 函数返回多个数据

5.1 作用:找到x,y,z中的最大者和最小值

5.2(Int,Int)是返回值的类型,表示这个函数的返回值中有两个整数!!!

5.3 案例:

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

  }

6.元组

6.1 元组:把数据放在一个容器。

6.2访问元组的数据._数学编号

6.3 案例:

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

  }
}