通常情況下,我希望將變量作用於if語句。一些計算只涉及一個特定的'if'語句 - 用臨時變量污染外部作用域味道不好。如果語句作用域變量
我會想做什麼:
val data = (whatever)
if (val x = data*2+5.4345/2.45; val y = data/128.4; x*y < 10)
x * y
else
x * 2
println(x) //ERROR!
一種選擇是相當混亂:
val data = (whatever)
if (data*2+5.4345/2.45*data/128.4 < 10)
data*2+5.4345/2.45*data/128.4
else
data*2+5.4345/2.45 * 2
我試圖避免明顯的替代:
val data = (whatever)
val x = data*2+5.4345/2.45
val y = data/128.4
if (x*y < 10)
x*y
else
x * 2
println(x) //OK
是什麼像在斯卡拉這可能嗎?有沒有體面的解決方法?如果不是,還有哪些其他語言支持這樣的想法?
非常酷!謝謝! – vertexshader 2012-01-13 03:42:31