У більшості мов, подібних до С, я навмисно розміщую брекети там, де, думаю, вони роблять код найпростішим для читання.
Аналізатор PowerShell розпізнає, коли заява явно не завершена, і переглядає наступний рядок. Наприклад, уявіть командлет, який приймає необов'язковий параметр блоку сценарію:
Get-Foo {............}
якщо блок сценарію дуже довгий, ви можете написати:
Get-Foo
{
...............
...............
...............
}
Але це не спрацює: аналізатор побачить два твердження. Перший є, Get-Foo
а другий - блок скриптів. Натомість я пишу:
Get-Foo {
...............
...............
...............
}
Я міг би використовувати символ продовження рядка (`), але це означає для важко прочитаного коду та запрошує помилки.
Оскільки цей випадок вимагає, щоб відкрита дужка була у попередньому рядку, я дотримуюсь цього шаблона всюди:
якщо (умова) {
.....
}
Зауважте, що if
заяви вимагають блоку скриптів у граматиці мови, тому аналізатор буде шукати наступний рядок для блоку сценарію, але для послідовності я зберігаю відкриту дужку в тому ж рядку.
Просто, у випадку довгих трубопроводів, я перериваюсь після символу труби ( |
):
$ project.Items |
? {$ _. Ключ -eq "ProjectFile"} |
% {$ _. Значення} |
% {$ _. EvaluatedInclude} |
% {
.........
}