나는 펑키 한 클로저 같은 물건을 만들고 싶다. 용기가 메서드의 매개 변수를 참조하는 익명 객체를 반환하는 메서드가 필요합니다. 여기가 내 의도를 설명 쓴 코드 :익명 개체를 반환하는 스칼라 함수?
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))
}
}
가 난 할 노력하고있어 것은 나에게 다음 함께 호출을 체인 수있는 개체를 반환 "설정"하는 전화를 가지고있다가 ".TO "과 같이 :
.set(SOMETHING).to(OTHER)
하지만
def foo = object { ... }
난 후 나는 무엇을 얻기 위해 스칼라의 방법이 있나요 말할 수 없다? 클래스를 정의하고 인스턴스를 생성해야합니까?
그래서'set'의 리턴 타입을'{def from (src : String) : Unit; def to [T] (v : Expression [T]) : Unit}'? –