0

シンプルなもの

class Thunk[+A](body: => A) {
  lazy val result: A = body;
}

どこかで定義されていますか?

あるいはもう少し洗練された

class Thunk[+A](body: => A) {
  private[this] var evaluatedInternal = false;

  lazy val result: A = {
    evaluatedInternal = true;
    body;
  }

  def evaluated: Boolean = evaluatedInternal;
}
4

1 に答える 1

0

Scala には、まさにその機能を提供するクラスNameとクラスがあります。NeedScalaz Issue #427も参照してください。

于 2013-07-20T08:03:52.500 に答える