Scala 可以为函数参数指定默认参数值,使用了默认参数,你在调用函数的过程中可以不需要传递参数,这时函数就会调用它的默认参数值,如果传递了参数,则传递值会取代默认值。
def functionName ([param1:Type1, param2:Type2=value2, param3:Type3=value3]) : [return type] = {
function body
return [expr]
}
参数 | 描述 |
---|---|
funcName | 函数名。 |
param1 | 函数参数 |
Type1 | 参数 param1 的类型 |
param2 | 函数参数 |
Type2 | 参数 param2 的类型 |
value2 | 参数 param2 的默认值 |
Type1 | 参数 param1 的类型 |
param3 | 函数参数 |
Type3 | 参数 param3 的类型 |
value3 | 参数 param3 的默认值 |
我们定义了一个函数 functionName,其参数 param2 的默认值为 value2,参数 param3 的默认值为 value3。
定义支持默认值的函数
object HaiCoder {
def main(args: Array[String]) : Unit = {
println("嗨客网(www.haicoder.net)!\n")
var num1 = 1
var num2 = 1024
var ret1 = sum(num1, num2)
var ret2 = sum(num1)
printf("ret1 = %d, ret2 = %d\n", ret1, ret2)
}
def sum(num1:Int, num2:Int=100) : Int = {
var ret = 0
for (i<-num1 to num2){
ret = ret + i
}
return ret
}
}
程序运行后,控制台输出如下:
我们定义了一个函数 sum,该函数接受两个 参数,一个 int 类型 的 num1,和一个 int 类型的 num2,同时,num2 参数还有一个默认值 100,该函数实现的功能是计算从 num1 到 num2 的和。
最后,我们在 main 函数 两次调用了函数 sum,第一次调用时,我们传入了两个参数,此时计算的就是我们传入的两个参数之间所有数的和,第二次,调用时,我们只传递了第一个参数,此时第二个参数就是使用默认值 100。
Scala 中函数多个默认参数的使用
object HaiCoder {
def main(args: Array[String]) : Unit = {
println("嗨客网(www.haicoder.net)!\n")
var num1 = 1
var num2 = 1024
var ret1 = sum(num1, num2)
var ret2 = sum(num1)
var ret3 = sum()
printf("ret1 = %d, ret2 = %d, ret3 = %d\n", ret1, ret2, ret3)
}
def sum(num1:Int=1, num2:Int=100) : Int = {
var ret = 0
for (i<-num1 to num2){
ret = ret + i
}
return ret
}
}
程序运行后,控制台输出如下:
这次,我们定义的函数 sum,两个参数都有默认参数,因此,我们可以不传递任何参数调用该函数。
Scala 可以为函数参数指定默认参数值,使用了默认参数,你在调用函数的过程中可以不需要传递参数,这时函数就会调用它的默认参数值,如果传递了参数,则传递值会取代默认值。