Понимание области применения Scala для циклов (для понимания) - PullRequest
9 голосов
/ 30 мая 2010

В главе 3 Программирование Scala автор приводит два примера циклов for / for compriptions, но переключается между использованием () и {}. Почему это так, поскольку они по сути выглядят так, как будто они делают одно и то же? Есть ли причина breed <- dogBreeds во второй строке в примере №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)

1 Ответ

9 голосов
/ 30 мая 2010

Если вы прочитали зеленый Совет:

для выражений может быть определено с скобки или фигурные скобки, но с использованием фигурные скобки означает, что вам не нужно разделите ваши фильтры точкой с запятой. В большинстве случаев вы предпочитаете использовать фигурные скобки, когда у вас есть больше, чем один фильтр, назначение и т. д.

Так что для понимания с () and {} то же самое, что изменение используется только в качестве разделителя: для () вы должны использовать semicolon ";" в качестве разделителя и для {} вы используете new line.

...