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