函数参数

42 阅读1分钟

(一)函数参数的默认值

格式

def 函数名(参数1:类型1=默认值1,参数2:类型2=默认值2)

def greet(name: String = "Guest", age: Int = 18): Unit = {  
  println(s"Hello, $name! You are $age years old.")  
}  
// 使用默认值  
greet() // 输出: Hello, Guest! You are 18 years old.  
greet("小花")  
greet(19)  
greet(age=19)  
// 只提供一个参数  
greet(name = "Alice") // 输出: Hello, Alice! You are 18 years old.  
// 提供所有参数  
greet(name = "Bob", age = 25) // 输出: Hello, Bob! You are 25 years old.

(二)创建不带()的方法

如果函数没有参数,可以省略定义函数时的(

格式:

def 方法名:[返回类型]={}。

def sayHello: Unit = {    
println("hello")

}    
sayHello // 不用加()

(三)创建接受变参的方法

功能:求所有参数的累加
变参特点:函数中的参数的个数是不确定的。思路:找一个容器把参数全部装起来 写法: 参数类型后面加*

 def getSum(args:Int*): Int ={  
    var sum = 0  
    for(i <- args){  
      sum += i // 累加  
    }  
    sum  
  }

定义一个函数,判断给定的三个数字是否能构成一个三角形,返回值为bool类型。

object ddd24 {
// 判断给定的三边,能否构成一个三角形?
def testTriangle(a:Double, b:Double, c:Double) = {
  // 完成代码
  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, 2.0)
  println(r) // false
  val r1 = isPrime(9)
  println(r1)
}
}