通常情况下我们定义一个函数,比如有a,b,c,d四个参数在调用的时候,根据形参类型及其顺序依次传入实参,这样做的好处就是比较规范,定义的类型和调用时传入的类型顺序完全一致,但是其实不够灵活,在scala里面提供了一种可以指定参数名称的方式,使得实参的顺序不必和形参的顺序一致,这种就灵活多了
object Test{
def main(argc: Array[String]){
printInt(b=15,a=34); // 这里指定了参数名称和值,因此可以改变顺序
}
def printInt(a:Int, b:Int) ={
println("value of a:" + a);
println("value of b:" + b);
}
}
编译执行
[root@node1 scala]# scalac Test.scala
[root@node1 scala]# scala Test
value of a:34
value of b:15
那么不指定参数名会如何呢,修改下程序看看
object Test{
def main(argc: Array[String]){
printInt(b=15,a=34);
println("++++++++++++++++++++++++++++++++++++++");
printInt(100,200);
}
def printInt(a:Int, b:Int) ={
println("value of a:" + a);
println("value of b:" + b);
}
}
执行结果如下:
value of a:34
value of b:15
++++++++++++++++++++++++++++++++++++++
value of a:100
value of b:200
可以看到在调用时候不指定参数名称,那么默认的还是按照形参的顺序来传递参数的。