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)
È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top