scala中的方法和构造函数都支持有名函数(named arguments),也就是在赋值的时候,显式的写:参数名=xxx,在java中是没有这种写法的;它用于在多个参数时,可以更明确的赋值给指定的参数,有利于阅读。
看一个构造函数的例子:
scala> class C(val a:String, val b:String)
defined class C
scala> def f(s:String) = s
f: (s: String)String
scala> val r = new C(a=f("a"), b=f("b"))
r: C = C@6704e2a0
scala> r.a
res0: String = a
scala> val r = new C(b=f("a"), a=f("b")) // 注意,这次 b=f("a") 这个函数会先执行
r: C = C@25bf38a2
scala> r.a
res1: String = b