В этом очень простом фиктивном приложении действия Flux фиксируются неправильными обработчиками. Почему?

Повышенная проверка компиляции с помощью parens

Авторы Spray рекомендуют, чтобы круглые парсеры увеличивали проверку компиляции. Это особенно важно для DSL, таких как Spray. Используя parens, вы сообщаете компилятору, что ему должна быть предоставлена ​​только одна строка, поэтому, если вы случайно дали ей два или более, она будет жаловаться. Теперь это не так с фигурными фигурными скобками, если, например, вы забудете оператора где-нибудь, где ваш код будет скомпилирован, вы получите неожиданные результаты и потенциально очень сложную ошибку. Ниже изобретено (так как выражения чисты и будут хотя бы давать предупреждение), но делает точку

method {
  1 +
  2
  3
}

method(
  1 +
  2
  3
 )

Первые компиляции, вторая дает error: ')' expected but integer literal found., которую автор хотел написать 1 + 2 + 3 .

Можно утверждать, что это похоже на многопараметрические методы с аргументами по умолчанию; невозможно случайно забыть запятую, чтобы отделять параметры при использовании парсеров.

Многозначность

Важное часто забытое примечание о многословии. Использование фигурных скобок неизбежно приводит к подробному коду, поскольку в руководстве по стилю скалы четко указано, что закрытие фигурных скобок должно быть в их собственной строке: http://docs.scala-lang.org/style/declarations.html «... закрывающая скобка находится на собственной линии сразу после последней строки функции». Многие автореформаторы, как и в Intellij, автоматически выполнит эту переформатировку для вас. Поэтому старайтесь использовать круглые парнеры, когда сможете. Например. List(1, 2, 3).reduceLeft{_ + _} становится:

List(1, 2, 3).reduceLeft {
  _ + _
}

2
задан Viewsonic 7 March 2019 в 01:55
поделиться