一、函数的定义
Scala 中函数相当于Java 中的静态方法,函数的声明需要使用关键字def,除了递归之外不需要声明返回类型,这是因为递归函数只有在运行的时候才能知道返回类型是什么,而Scala 只能在代码编译的时候做类型推测。在Scala 中,函数语句块的最后一个值就是这个函数的返回值,因此并不使用return。
Scala 函数定义格式如下:
当函数仅仅只有一条语句时不用加大括号,如果函数没有返回值,可以设置返回类型为Unit。
例1. 定义一个无返回值的函数。
也可以将上述函数简写为:
例2. 定义一个函数,完成奇偶判断。
例3. 定义一个函数,完成两个整型数据的求和。
例4. 带默认参数的函数。
例5. 指定最后一个参数为可变参数, 从而接受数目不定的同类型实参。
由上面的例子可以看到,当函数的返回值类型确定时,可以省略掉。
二、函数的调用
使用“函数名(参数)”即可完成函数的调用,如对say1(),judge1(4),add1(4,5),echo(“hello”, “scala”)的调用结果如下:
scala> say1()
Hello World!
scala> judge1(4)(www.daowen.com)
res2: Int = 1
scala> add1(4,5)
res4: Int = 9
scala> echo("hello", "scala")
hello
scala
一般情况下函数调用参数,就按照函数定义时的参数顺序一个个传递。但是也可以通过命名参数(指定函数参数名),不需要按照顺序向函数传递参数,例如:
def printInt( a:Int, b:Int ) = {
println("a = " + a );
println("b = " + b );
}
scala> printInt(b = 5, a = 4)
a = 4
b = 5
Scala 的参数传递采用传值的方式,参数被当做常量val 而非变量var 传入,如果修改参数的值则会报错:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。