Comprendre la portée sur les boucles For Scala (pour Comprehension)
-
05-10-2019 - |
Question
Dans le chapitre 3 de Programmation Scala, l'auteur donne deux exemples de pour boucles / pour compréhensions, mais passe entre l'utilisation () 's et {} s. Pourquoi est-ce le cas, car ceux-ci regard par nature comme ils font la même chose? Y at-il une raison breed <- dogBreeds
est sur la 2ème ligne dans l'exemple # 2?
// #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)
La solution
Si vous lisez le vert Astuce:
pour les expressions peut être définie parenthèses ou accolades, mais en utilisant accolades signifie que vous ne devez pas séparer vos filtres avec des points-virgules. La plupart du temps, vous préférez utiliser accolades quand vous avez plus de un filtre, affectation, etc.
Donc, pour la compréhension avec () and {}
sont les mêmes, la seule chose que le changement est le séparateur utilisé. Pour ()
vous devez utiliser un semicolon ";"
comme séparateur et {}
vous utilisez new line