Entonces, mientras trabajaba en "Scala para el impaciente", me pregunté: ¿Se puede usar un bucle de Scala sin secuencia?Para bucle en scala sin secuencia?
Por ejemplo, hay un ejercicio en el libro que le pide que cree un objeto de contador que no puede incrementarse más allá de Integer.MAX_VALUE. Con el fin de probar mi solución, escribí el siguiente código:
var c = new Counter
for(i <- 0 to Integer.MAX_VALUE) c.increment()
Esto arroja un error: secuencias no pueden contener más elementos Int.MaxValue. Me parece que eso significa que Scala está asignando y poblando por primera vez un objeto de secuencia, con los valores 0 a Integer.MaxValue, y luego haciendo un bucle foreach en ese objeto de secuencia.
que se dan cuenta de que podía hacer esto en su lugar:
var c = new Counter
while(c.value < Integer.MAX_VALUE) c.increment()
pero ¿hay alguna manera de hacer un estilo tradicional C para el lazo con la sentencia for?
Guau, una respuesta desafiante, pero una buena. Estoy aprendiendo Scala, así que has usado muchos términos con los que apenas estoy familiarizado, pero gracias. –
La definición de 'fromTo' se puede simplificar aún más mediante el uso del método' iterate' en el objeto complementario 'Stream' (o' Iterator'). Algo en la línea de: 'def fromTo (desde: Int, to: Int) = Stream.iterate (from, to - from) (_ + 1)'. Pero usar 'from to to' es más idiomático y logra lo mismo. –