scala函数的基本使用

11 阅读2分钟

(一)定义函数

格式如下:

(二)函数调用

object Base34 {
  def main(args: Array[String]): Unit = {
    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);
    }
  }
}

(三)函数规则

1.只有一行可以省略{}。当Scala的函数体中只有一行表达式时可以省略{},输出结果依然不变。

2.最后一条语句为函数的返回值。当函数体中有多个语句存在时,返回最后一条语句的值。

3.函数的返回类型可以省略。它会自动推断。

4.函数没有形参,在定义函数时可以省略(),那么在调用函数时也不需要添加()

扩展提问:定义一个函数,求三个数的最大值

object Base36 {
  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 main(x:Int,y:Int,z:Int):Int = {
    1
  }
  def main(args: Array[String]): Unit = {
    //调用函数
    val s = max(100,100,100)
    println(s);

    val m = min(1,10,100)
    println(s);
  }
}

(四)函数返回多个值

object Base37 {
  def getMaxandMin(x:Int,y:Int,z:Int): (Int,Int) = {

    var min:Int = x
    var max:Int = x

    min = if(x < y){ x } else{ y }
    min = if(min < z ){ min } else{ z }

    max = if(x < y){ y } else{ x }
    max = if(max < z ){ z } else{ max }
    //println(min,max)
    (min,max)
  }

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

    var r =  getMaxandMin(10,20,3)
    println(s"最小值${r._1}")
    println(s"最大值${r._2}")

  }
}

(五)元组

定义 元组:

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

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

访问元组

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

 t = new Tuple2(1,2); println(t._1, t._2)