car*_*_lm 0 refactoring scala lazy-evaluation dummy-data
我在斯卡拉一个新手,并与懒惰的评价玩弄和这个问题跌跌撞撞:如果我想使懒惰的评估VALÇ作品,我写的虚拟变量一和b的声明之前Ç,这我考虑太多样板.我尝试在没有初始初始化的情况下声明a和b lazy val,但编译器抱怨.如果我写的东西:lazy val c = a:Double, b:Int
也不起作用.
有没有办法摆脱这些虚拟变量?我能以更优雅的方式重构此代码吗?
var a = 0d; //> a : Double = 0.0
var b = 0; //> b : Int = 0
lazy val c = a / b //> c : Double = <lazy>
//some other code...
a = math.Pi
b = -1
(1 to 10).foreach(x => println(f"$x, ${x * c}%.8s"))
//> 1, -3.14159
//| 2, -6.28318
Run Code Online (Sandbox Code Playgroud)
我没有看到"其他一些代码",但var通常是一个糟糕的代码味道我scala.为什么不做这样的事情
lazy val c = {
val a = ...
val b = ...
...computation with a & b ...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
144 次 |
最近记录: |