函数参数的默认值
1.定义有默认值的函数:def 函数名(参数1:类型1=默认值1,参数2:类型2=默认值2)
- eg:
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)
hello()
hello(age=18)
hello(name = "小李",gender ="男")
}
}
创建不带()的方法
定义函数的时候,不写(),那么在调用函数的时候,也不能写()
- eg:
def test():Unit={
println("test....")
}
def main(args: Array[String]): Unit = {
test //正确
test() //错误
创建接受变参的方法
1.允许参数个数有多个,但是要类型相同 2.就是在参数类型后面加"*"
object Base42 {
def getSum(args: Int*): Int = {
var sum = 0
for (i <- args) {
sum += i
}
sum // 这里返回 sum
}
def main(args: Array[String]): Unit = {
val result1 = getSum(1)
val result2 = getSum(4, 1, 2, 3, 5)
println(result1, result2) // 打印元组
// 或者分别打印
// println(result1)
// println(result2)
}
}
eg:编写一个函数,接受一个参数,判断给定的数字是否为素数
object TriangleAndPrime {
// 判断三个数字是否能构成三角形
def testTriangle(a: Double, b: Double, c: Double): Boolean = {
a + b > c && b + c > a && a + c > b
}
// 判断一个数是否为质数
def isPrime(num: Int): Boolean = {
if (num <= 1) return false
var isPrimeNum = true
for (i <- 2 to math.sqrt(num).toInt if isPrimeNum) {
if (num % i == 0) {
isPrimeNum = false
}
}
isPrimeNum
}
def main(args: Array[String]): Unit = {
val r = testTriangle(1.0, 2.0, 2.0)
println(s"1.0, 2.0, 2.0 能构成三角形吗? $r")
val r1 = isPrime(9)
println(s"9 是质数吗? $r1")
val r2 = isPrime(7)
println(s"7 是质数吗? $r2")
}
}