在scala中,如何在DynamicVariable中提取值?

时间:2015-05-11 10:07:39

标签: java scala

我发现了一个关于DynamicVariable的问题:

When we should use scala.util.DynamicVariable?

然后我尝试使用DynamicVariable

作为示例
object m {

  class W {
    def wrapper[T](f: => T) = W.dyn.withValue("Bye")(f)
  }

  object W {
    private val dyn = new DynamicVariable[String]("Hello")
  }

  def main() = {
    val w = new W()
    w.wrapper {
      println(1)
    }
  }
 }
m.main()

它编译成功,但我对如何提取DynamicVariable指定的值没有任何想法,有没有人对此有所了解?

1 个答案:

答案 0 :(得分:1)

这是一个最小的片段:

val dyn = new DynamicVariable[String]("withoutValue")
def print=println(dyn.value)
print
dyn.withValue("withValue") {
  print
}
print

输出将是:

withoutValue
withValue
withoutValue