函数参数的使用

78 阅读1分钟

一.定义有默认值的函数

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("新一",17,"男")
    hello("小兰",17)                 //1.不写性别,默认为女
    hello()                         //2.全部不写,全部使用默认值

    hello(age=20)                  //3.设置年龄为20,其他参数使用默认值
    hello(gender = "男",name="园子")//4.设置名字为园子,性别为女,年龄使用默认值
}

二.创建不带()的方法

  • 定义函数的时候,不写(),那在调用函数的时候,也不能写()
def test():Unit = {
    println("testy......")
}
def main(args: Array[String]): Unit = {
    test//正确
    test()//不正确
}

三.创建接受变参的方法

  1. 允许参数的个数不同,类型相同
  2. 变参:参数类型后面加一个 *
def getSum(args: Array[Int]): Int = {
    var sum = 0
    for (i <- args) {
        sum += i
    }
    sum
}

def main(args: Array[String]): Unit = {
    val result1 = getSum(Array(1))
    val result2 = getSum(Array(4, 1, 2, 3, 5))
    println(result1, result2)
}
  1. 判断三条边能否构成三角形:任意两边之和大于第三边
def testTriangle(a: Double, b: Double, c: Double): Boolean = {
    // 判断三条边能否构成三角形:任意两边之和大于第三边
    a + b > c && a + c > b && b + c > a
  }

  def isPrime(num: Int): Boolean = {
    if (num <= 1) return false // 补充边界条件:小于等于1的数不是质数
    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, 2.0)
    println(r) // 输出 true,因为1,2,2可以构成三角形

    val r1 = isPrime(9)
    println(r1) // 输出 false,因为9能被3整除,不是质数
  }
}