2010-04-24 138 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 
相關問題