在scala中调用具有相同实例的多个函数

时间:2010-04-24 15:34:11

标签: scala

有什么办法可以在scala中实现以下功能

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

而不是

val c = new Car()
c.examineColor
c.bargain(300)
c.buy

2 个答案:

答案 0 :(得分:10)

这个怎么样:

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

或者:

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

答案 1 :(得分:3)

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

val c1 = new Car()
c1.examineColor.bargain(300).buy