2010-04-24 137 views

回答

10

这个怎么样

with new Car() { 
    examineColor 
    bargain(300) 
    buy 
} 

代替:

scala> val c = new Car { 
    |  examineColor 
    |  bargain(300) 
    |  buy 
    | } 

或者:

scala> { import c._ 
    | examineColor 
    | bargain(300) 
    | buy 
    | } 
+1

+1表示第二个选项。第一个将创建一个'Car'的子类并在其构造函数中执行这些方法,这可能不是预期的。 – 2010-04-24 17:59:31

2

假设这些方法(examineColorbargainbuy)被调用它们的副作用,而不是为了它们的返回值,则可以使用其中每个这些方法返回this,允许编写这样的代码的链接模式:

val c1 = new Car() 
c1.examineColor.bargain(300).buy 
相关问题