scala学习笔记-默认参数和带名参数(4)
默认参数
在Scala中,有时我们调用某些函数时,不希望给出参数的具体值,而希望使用参数自身默认的值,此时就定义在定义函数时使用默认参数。
1 def sayHello(firstName: String, middleName: String = "William", lastName: String = "Croft") = firstName + " " + middleName + " " + lastName
如果给出的参数不够,则会从作往右依次应用参数。
Java与Scala实现默认参数的区别
1 Java: 2 public void sayHello(String name, int age) { 3 if(name == null) { 4 name = "defaultName" 5 } 6 if(age == 0) { 7 age = 18 8 } 9 } 10 sayHello(null, 0) 11 12 Scala:def sayHello(name: String, age: Int = 20) { 13 print("Hello, " + name + ", your age is " + age) 14 } 15 sayHello("leo")
带名参数
在调用函数时,也可以不按照函数定义的参数顺序来传递参数,而是使用带名参数的方式来传递。
sayHello(firstName = "Mick", lastName = "Nina", middleName = "Jack")
还可以混合使用未命名参数和带名参数,但是未命名参数必须排在带名参数前面。
sayHello("Mick", lastName = "Nina", middleName = "Jack")