En el capítulo 3 de Programming Scala, el autor proporciona dos ejemplos de bucles for/para comprensión, pero cambia entre using() y {} 's. ¿Por qué es este el caso, ya que estos intrínsecamente parecen estar haciendo lo mismo? ¿Hay alguna razón por la que breed <- dogBreeds
esté en la 2da línea en el ejemplo 2?Comprensión del alcance de los bucles For de Scala (para comprensión)
// #1()'s
for (breed <- dogBreeds
if breed.contains("Terrier");
if !breed.startsWith("Yorkshire")
) println(breed)
// #2 {}'s
for {
breed <- dogBreeds
upcasedBreed = breed.toUpperCase()
} println(upcasedBreed)
Otra de las funciones WTF de Scala. Un gran lenguaje, pero lleno de azúcar que no solo es innecesario, sino posiblemente dañino. – andyczerwonka
La inferencia de semiconductor no es gratuita. La otra vez que muerde es 'val a = 1 + 2 + 3 + 4'. Esto se analiza como 'val a = 1. + (2). + (3); 4.unario _ +() ' –
retronym
Tenga en cuenta que el primer ejemplo no se compila. – retronym