Owe*_*wen 10 constructor scala lazy-evaluation
最近的事情
case class Foo(lazy next: Foo)
Run Code Online (Sandbox Code Playgroud)
我能想到的是
class Foo(_next: =>Foo) {
lazy val next = _next
}
object Foo {
def apply(next: =>Foo) = new Foo(next)
def unapply(foo: Foo) = Some(foo.next)
}
Run Code Online (Sandbox Code Playgroud)
我发现一个列出的问题添加了懒惰的参数,所以我想它有一天会被添加.与此同时,有没有人知道比上述更清洁的伎俩?
scala> case class Foo(next: Name[Foo])
defined class Foo
scala> lazy val x: Foo = Foo(Need(y)); lazy val y: Foo = Foo(Need(x))
x: Foo = <lazy>
y: Foo = <lazy>
scala> x.next.flatMap(_.next).value eq x
res61: Boolean = true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1588 次 |
| 最近记录: |