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