我在同时使用Options和Lazy Evaluation时遇到了一个小问题。例如,当我在 REPL 中尝试此代码时,我得到以下信息
lazy val a = 3+3
REPL 说:
a: Int = <lazy>
这很酷,但是..
val b = Some(a)
REPL 说:
b: Some[Int] = Some(6)
看起来Some必须先评估参数,然后再将其放入 Option :(
还
val b = Box !! a
评估为
b: net.liftweb.common.Box[Int] = Full(6)
一样的效果:(
有什么解决方法吗,我只需要一个带有惰性 val 的选项,如果我能实现以下效果,那就太好了
b: Some[Int] = Some(<lazy>)
笔记:
在询问之前我做了一些研究,我发现scalaz有一个叫做LazyOption的东西,很有趣但我不能使用它:(
任何帮助!