scala函数参数默认值
1:定义有默认值的函数
格式:def 函数名(参数1:类型1=默认值1,参数2:类型2=默认值2)
定义函数时不加(),调用时同意不要用()
object txy34 {
def main(args: Array[String]): Unit = {
def hello(name:String="王俊凯", age:Int=16, sex:String="女") = {
println(s"Hello,我是${name},${age}岁,性别:${sex}")
}
hello("王源",18,"男")
hello("王源",18)
hello("王源")
hello()
}
}
2:创建不带默认值的函数
def hello = { println("Hello") }
hello
即是输出Hello
3:跳过默认值变参的方法
def hello(name:String="王俊凯", age:Int=16, sex:String="女") = {
println(s"Hello,我是${name},${age}岁,性别:${sex}")
hello(age = 18)
hello(sex = "男", name = "王扁")
3:创建接受变参的方法
在Scala中创建接受变参的方法为:参数类型*,这种方式只能接受同一类型的参数。
功能:求所有参数的累加
变参特点:函数中的参数的个数是不确定的。思路:找一个容器把参数全部装起来!!!
写法: 参数类型后面加*
object txy35 {
def main(args: Array[String]): Unit = {
def sum(args:Int*):Int = {
var sum = 0
for(i <- args){
sum += i
}
sum
}
val result1 = sum(1)
val result2 = sum(1,2,3,4,5)
println(result1)
println(result2)
}
}
例题
1:判断给定的三边能否构成三角形
object txy36 {
def main(args: Array[String]): Unit = {
def sj(a:Double,b:Double,c:Double):Boolean = {
a+b>c && a+c>b && b+c>a
}
var r = sj(1,2,3)
print(r)
}
}
2:判断一个数是不是素数
object txy37 {
def main(args: Array[String]): Unit = {
def su(num:Int):Boolean = {
var su = true
for(i <- 2 to num-1){
if(num % i == 0){
su = false
}
}
su
}
var r1 = su(8)
print(r1)
}
}