Scala函数默认值

Scala函数默认值教程

Scala 可以为函数参数指定默认参数值,使用了默认参数,你在调用函数的过程中可以不需要传递参数,这时函数就会调用它的默认参数值,如果传递了参数,则传递值会取代默认值。

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 } }

程序运行后,控制台输出如下:

09_Scala函数参数默认值.png

我们定义了一个函数 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 } }

程序运行后,控制台输出如下:

10_Scala函数参数默认值.png

这次,我们定义的函数 sum,两个参数都有默认参数,因此,我们可以不传递任何参数调用该函数。

Scala函数默认值总结

Scala 可以为函数参数指定默认参数值,使用了默认参数,你在调用函数的过程中可以不需要传递参数,这时函数就会调用它的默认参数值,如果传递了参数,则传递值会取代默认值。