Повышенная проверка компиляции с помощью 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 {
_ + _
}
Вам необходимо удалить существующий атрибут и добавить новый, например, :
var elements = root.Descendants(elementName).Descendants()
.Where(x => (string)x.Attribute("name") == "LastResolvedDate");
foreach (var item in elements)
{
item.Attribute("name").Remove();
item.Add(new XAttribute("renamed_new_name", "LastResolvedDate"));
}