基本内容:
1.函数参数的默认值
2.无参函数
3.变参函数
4.案例
(一)函数参数的默认值
1. 定义有默认值的函数
【讲授】 格式
def 函数名(参数1:类型1=默认值1,参数2:类型2=默认值2)
定义一个函数,并使用不同的参数来测试使用。
object base035 {
// gender:
def greet(name:String="哈哈",age:Int = 18,gender:String="女"):Unit= {
println(s"我是${name},我今年${age},${gender}")
}
def main(args: Array[String]): Unit = {
greet("小花",18) //默认值
greet("小明",20,"男")
greet()
}
}
结果如下:
(二)创建不带()的方法
如果函数没有参数,可以省略定义函数时的( )
格式:def 方法名:[返回类型]={}。
object base036 {
// 如果函数不需要参数,可以在定义函数的时候,省略()
def greet():Unit={
println(s"hahhaa~~~")
}
def main(args: Array[String]): Unit = {
// 如果在定义函数的时候没有写(),那么在调用函数的时候,也不要加()
greet
}
}
(三) 创建接受变参的方法
【提问】 如何定义一个函数,它能接收数量不定的参数,并计算它们的累加?例如:getSum(1,2,3) 得到6, getSum(1,2,3,4) 得到10?
【分析】我们需要一个统一的容器,把参数都装起来。
【讲授】在Scala中创建接受变参的方法为:参数类型*,这种方式只能接受同一类型的参数。
【编码示范】:
// 功能:求所有参数的累加
// 变参特点:函数中的参数的个数是不确定的。思路:找一个容器把参数全部装起来!!!
// 写法: 参数类型后面加*
def getSum(args:Int*): Int ={
var sum = 0
for(i <- args){
sum += i // 累加
}
sum
}
( 四 ) 案例
【题目要求】定义一个函数,判断给定的三个数字是否能构成一个三角形,返回值为bool类型。
【题目分析】参数有三个,表示三条边,可以使用double类型; 判断标准任意两边之和大于第三边即可。
def testTriangle(a:Double, b:Double, c:Double):Boolean = {
}
def main() = {
val r = testTriangle(10,20,30);
println(r);
}