(一)函数参数的默认值
1. 定义有默认值的函数
格式: def 函数名(参数1:类型1=默认值1,参数2:类型2=默认值2)
object Base38 {
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 = 19) //设置年龄为18,其他的参数使用默认值
hello(gender="男",name="小李") // 设置名字为小李,性别为男,年龄使用默认值
}
}
(二)创建不带()的方法
格式:def 方法名:[返回类型]={}。
def sayHello: Unit = {
println("hello")
}
sayHello // 不用加()
(三)创建接受变参的方法
【编码示范】
// 功能:求所有参数的累加
// 变参特点:函数中的参数的个数是不确定的。思路:找一个容器把参数全部装起来!!!
// 写法: 参数类型后面加*
def getSum(args:Int*): Int ={
var sum = 0
for(i <- args){
sum += i // 累加
}
sum
}
示例:
object Base39 {
// def getSum(a:Int*):Int = {
// a + b
// }
def getSum(args:Int*):Int = {
//[1,2,3,4 ]
var sum = 0
for(i <- args){
sum += i
}
sum
}
def main(args: Array[String]): Unit = {
val result1 = getSum(1)
val result2 = getSum(4,1,2,3,5)
println(result1,result2)
}
}
【题目要求】定义一个函数,判断给定的三个数字是否能构成一个三角形,返回值为bool类型。
object Base40 {
//判断给定的三边,能否构成一个三角形?
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)
val r1 = isPrime(9)
println(r1)
}
}