有什么办法可以在scala中实现以下功能
with new Car() {
examineColor
bargain(300)
buy
}
而不是
val c = new Car()
c.examineColor
c.bargain(300)
c.buy
答案 0 :(得分:10)
这个怎么样:
scala> val c = new Car {
| examineColor
| bargain(300)
| buy
| }
或者:
scala> { import c._
| examineColor
| bargain(300)
| buy
| }
答案 1 :(得分:3)
假设这些方法(examineColor
,bargain
和buy
)因其副作用而不是其返回值而被调用,您可以使用其中每个方法的链接模式方法返回this
,允许您编写如下代码:
val c1 = new Car()
c1.examineColor.bargain(300).buy