Muchas veces deseo crear variables con ámbito en una instrucción if. Algunos cálculos solo se relacionan con una declaración particular 'si': contaminar el alcance externo con variables temporales huele mal.Variables con ámbito de declaración If
Lo que me gustaría hacer:
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!
Una alternativa es bastante desordenado:
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
La alternativa obvia que estoy tratando de evitar:
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
Es algo como esto posible en Scala? ¿Hay una solución decente? Si no, ¿qué otros idiomas admiten una idea como esta?
muy fresco! ¡Gracias! – vertexshader