这对我来说是个常见的烦恼:
trait Foo {
val x: Int
}
def foo(x: Int) = new Foo {
val x = x // <-- Here
}
在编写Scala时,我可能每20分钟遇到一次。
我所知道的解决方案及其各自的缺陷是:
还有其他人吗?
答案 0 :(得分:2)
我有时会使用这种俗气的方法:
def foo(x: Int): Foo = {
val x1 = x
new Foo {
val x = x1
}
}
答案 1 :(得分:1)
这个怎么样?
trait Foo {
val x: Int
}
object Foo {
def apply(xt: Int) = new Foo { val x = xt }
}
def foo(xt: Int) = Foo(xt) // <-- Here