scala中的有名参数

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

Leave a Reply

Your email address will not be published. Required fields are marked *