(一) 函数参数的默认值
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 ()
hello() // 2. 不写所有参数,全部都用默认值}
hello(age=18) //3.设置年龄为18,其他参数使用默认值
hello(name = "小李",gender = "男") //4.设置姓名为小李,性别为男,年龄使用默认值
}
}
( 二)创建不带()的方法
如果函数没有参数,可以省略定义函数时的( )
格式:def 方法名:[返回类型]={}。
object base41 {
/**
*函数参数使用
*/
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 = {
hello("小花",18,"女")
hello("小明",19,"男")
hello("小花",18)// 1. 不写性别,默认为女hello ()
hello() // 2. 不写所有参数,全部都用默认值}
hello(age=18) //3.设置年龄为18,其他参数使用默认值
hello(name = "小李",gender = "男") //4.设置姓名为小李,性别为男,年龄使用默认值
test //正确
test() //错误
}
}
(三)创建接受变参的方法
在Scala中创建接受变参的方法为:参数类型*,这种方式只能接受同一类型的参数。
功能:求所有参数的累加
变参特点:函数中的参数的个数是不确定的
写法: 参数类型后面加*
object base42 {
// def getSum(a:Int,b:Int):Int = {
// a+b
// }
//允许参数不同
//变参
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(1,2,3,4,5)
println(result1,result2)
}
}
(四)案例
【题目】:
1.定义一个函数,判断给定的三个数字是否能构成一个三角形,返回值为bool类型。
- 判断一个数是不是素数
object base43 {
//定义一个函数,判断给定的三个数字是否能构成一个三角形,返回值为bool类型。
def testTriangle(a:Double, b:Double, c:Double):Boolean = {
a + b > c && b + c > a && a + c > b
}
// 判断一个数是不是素数
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)
}
}
结果如图: