как определяется "приоритет ключевых слов" в scala?
Рассмотрим этот кусок кода:
for(i <- 1 to 10) yield i
Это нормально, я получаю Seq
от 1 до 10, но когда я пытаюсь соответствовать сразу после:
for(i <- 1 to 10) yield i match {case x => x.head}
Произошла ошибка компиляции: error: value head is not a member of Int
.
Я могу заключить for ... yield
в скобки, чтобы дать ему приоритет:
{for(i <- 1 to 10) yield i} match {case x => x.head}
Но мне все еще интересно, как интерпретируется второй пример кода. Я ожидаю, что и второй пример будет работать правильно, не окружая его паренами.
Может кто-нибудь объяснить мне или указать мне правильную главу в спецификации?