Bucles for en Scala
Tres formas del for: sobre una colección, sobre .indices y con dos generadores.
val stalls = Vector("bread", "honey", "cider", "wool")
// for ... do runs the body once per element.
def announceStalls(): Unit =
for stall <- stalls do
println("now open: " + stall)
// .indices gives the valid positions of a sequence.
def numberStalls(): Unit =
for i <- stalls.indices do
println(s"${i + 1}. ${stalls(i)}")
// Two generators nest: the second runs inside the first.
def stallGrid(): Unit =
for
row <- 1 to 3
col <- 1 to 2
do println(s"pitch $row-$col")
Cómo funciona
for stall <- stalls dorecorre elVectore imprime una línea por elemento.for i <- stalls.indices dorecorre posiciones, asístalls(i)se puede numerar.- El último anida los generadores
row <- 1 to 3ycol <- 1 to 2sobre un solodo println(s"pitch $row-$col").
Palabras clave y builtins usados aquí
defdoforval
El intento, en números
- Líneas
- 18
- Caracteres a escribir
- 472
- Tokens
- 95
- Ritmo de tres estrellas
- 80 tpm
Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 71 segundos.
Paso 3 de 3 en Expresiones; paso 6 de 27 en Fundamentos del lenguaje.