Понимание охвата Scala's для петель (для понимания)
-
05-10-2019 - |
Вопрос
В главе 3 Программирование Scala., Автор дает два примера для циклов / для пониманий, но переключается между использованием () и {}. Почему это дело, так как они по своей природе выглядят так, как будто они делают одно и то же? Есть ли причина breed <- dogBreeds
На 2-й строке в примере № 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)
Решение
Если вы читаете зеленый совет:
Для выражений могут быть определены с скобками или фигурными скобками, но использование фигурных скобок означает, что вам не нужно отделить свои фильтры с запятой. Большую часть времени вы предпочитаете использовать фигурные скобки, когда у вас есть более одного фильтра, назначения и т. Д.
Так для понимания с () and {}
Одинаковые единственные, что изменение используется используется сепаратор: для ()
Вы должны использовать semicolon ";"
как сепаратор и для {}
ты используешь new line
.