(一)函数参数的默认值
- 定义有默认值的函数
- 格式为 :def 函数名(参数1:类型1=默认值1,参数2:类型2=默认值2)
- 代码例如
object Base47 {
/*
* 函数参数的使用
*/
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="小李")
}
}
结果如下
(二)创建不带()的方法
- 如果函数没有参数,可以省略定义函数时的( )
- 格式:def 方法名:[返回类型]={}。
- 例如
object Base48 {
/*
* 函数参数的使用
*/
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() // 错误的
}
}
(三)创建接受变参的方法
如何定义一个函数,它能接收数量不定的参数,并计算它们的累加?例如:getSum(1,2,3) 得到6, getSum(1,2,3,4) 得到10?
代码如下
object Base49 {
// 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()
val result2 = getSum(1, 2, 3, 5)
println(result1, result2)
}
}
(四)案例
定义一个函数,判断给定的三个数字是否能构成一个三角形,返回值为bool类型。
参数有三个,表示三条边,可以使用double类型; 任意两边之和大于第三边即可。 代码如下
object Base50 {
// 判断给定的三边,能否构成一个三角形?
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) // false
val r1 = isPrime(9)
println(r1)
}
}