函数参数

37 阅读1分钟

默认值函数参数

object Base39 {
  def hello(name:String="小明",age:Int=17,gender:String="女"):Unit={
    println(s"hello,我是${name},${age}岁,性别:${gender}")
  }


  def main(args:Array[String]):Unit ={
    hello("小花",18,"女")
    hello("小明" ,19,"男")
    hello("小花",18)
  }
}

定义函数的时候不写(),那么在调用函数的时候也不写()

object Base40 {
  def hello(name:String="小明",age:Int=17,gender:String="女"):Unit={
    println(s"hello,我是${name},${age}岁,性别:${gender}")
  }

  def test():Unit={
    println("test........")
  }

  def main(args:Array[String]):Unit ={
    test
    //test()错误的
  }
}

创建接受变参的方法

变参:参数类型后面加一个*

object Base41 {
  def getSum(args:Int*):Int={
    var sum = 0
    for(i<- args){
      sum += i
    }
    sum
  }

  def main(args:Array[String]):Unit ={
    val result1 = getSum(1)
    val result2 = getSum(4,1,2,3,5)
    println(result1,result2)
  }
}

应用

判断给定的三边,能否构成一个三角形?

object Base42 {
  def testTriangle(a:Double,b:Double,c:Double):Boolean ={
    a+b>c && a+c>b && b+c>a

  }

  def isPrime(num:Int):Boolean ={
    var isPrimeNum = true
    for(i <- 2 to num-1){
      if(num % i == 0){
        isPrimeNum = false
      }
    }
    isPrimeNum
  }

  def main(args:Array[String]):Unit ={
    val r = testTriangle(1.0,2.0,3.0)
    println(r)
    val r1 = isPrime(9)
    println(r1)
  }
}