Ambito intesa sui cicli for di Scala (per la comprensione)
-
05-10-2019 - |
Domanda
Nel capitolo 3 della Programmazione Scala , l'autore fornisce due esempi di per loop / espressioni for ma passa tra usando () 's e {}' s. Perché è questo il caso, in quanto questi aspetto intrinsecamente come stanno facendo la stessa cosa? C'è una ragione breed <- dogBreeds
è sulla linea 2 nell'esempio # 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)
Soluzione
Se avete letto la punta verde:
per le espressioni può essere definita con parentesi o parentesi graffe, ma utilizzando parentesi graffe significa che non dovete separare i filtri con un punto e virgola. La maggior parte del tempo, che preferiate utilizzare parentesi graffe quando si dispone di più di un filtro, assegnazione, ecc.
Quindi, per la comprensione con () and {}
sono la stessa l'unica cosa che il cambiamento è il separatore utilizzato:. Per ()
è necessario utilizzare un semicolon ";"
come separatore e per {}
si utilizza new line