一.函数参数的默认值
1. 定义有默认值的函数
格式:def 函数名(参数1:类型1=默认值1,参数2:类型2=默认值2)
object Base44 {
/*
*函数参数的使用
*/
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 方法名:[返回类型]={}
object Base45 {
/*
*函数参数的使用
*/
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?
- 在Scala中创建接受变参的方法为:参数类型*,这种方式只能接受同一类型的参数。
object Base46 {
//允许参数的个数不同,类型相同
//变参:参数类型的后边接一个*
def getSum(args:Int*):Int = {
//[1,2,3,4]
var sum = 0
for(i <- args){
sum += 1
}
sum
}
def main(args: Array[String]): Unit = {
val result1 = getSum(1)
val result2 = getSum(4,1,2,3,5)
println(result1,result2)
}
}
object Base47 {
//判断给定的三边,能否构成一个三角形?
def testTriangle(a:Double,b:Double,c:Double):Boolean = {
//完成代码
a + b > c && a + c > b && b + c > a
}
//判断一个数是不是素数
def isPrime(num:Int):Boolean ={
var isPrime= true
for(i <- 2 to num-1){
if(num %i ==0){
isPrimeNum = false
}
}
//最后一行表示函数的返回值
isPrimeNum
}
def main(args: Array[String]): Unit = {
var r = testTriangle(1.0,2.0,3.0)
println(r)
}
}