我想做一些时髦的闭包之类的东西。我想要一个方法来返回一个匿名对象,该对象的胆量引用了该方法的参数。这是我编写的代码,说明了我的意图:
object SessionManagement {
implicit class SessionManagementExtensions( val c : ChainBuilder ) {
def set( dest: String ) = object {
def from( src: String ) =
c.exec( session => {
val list = session( src ).as[Vector[String]]
val i = if ( list.size == 0 ) -1 else Random.nextInt( list.size )
val value = if ( i > 0 ) list(i) else "INVALID_" + dest
session.set( dest, value )
})
def to[T]( v: Expression[T] ) =
c.exec( session => session.set( dest, v ) )
}
}
我正在尝试做的是调用“set”返回一个对象,该对象允许我将调用“.to”链接在一起,如下所示:
.set( SOMETHING ).to( OTHER )
但我不能说
def foo = object { ... }
Scala有没有办法得到我想要的东西?我必须定义一个类并实例化它吗?