函数参数

31 阅读1分钟

函数参数的默认值

1.定义有默认值的函数。
def 函数名(参数1:类型1=默认值1.参数2: 类型2=默认值2)

object base41 {


    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) //1.不写性别,默认为女
        hello()         //2.不写所有参数。全部使用默认值

        hello(age=18)  //3.设置年龄为18.其他的参数使用默认值
        hello(gender = "男",name="小李") //4.默认名字为小李
    }
}

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

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

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

    test // 正确
    test() // 错误
}

创建接受变参的函数

允许参数的个数不同,类型相同。
变参:参数类型后边,加一个*

object base42 {

    def getSum(a: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 base43 {

    //判断给定的三遍,能否构成一个三角形?
    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,2.0)
        println(r)

        val r1=isPrime(9)
        println(r1)
    }
}