Nella maggior parte dei linguaggi simili a C, sono intenzionato a posizionare le parentesi graffe dove penso che rendano il codice più facile da leggere.
Il parser di PowerShell riconosce quando un'istruzione chiaramente non è completa e guarda alla riga successiva. Ad esempio, immagina un cmdlet che accetta un parametro di blocco script opzionale:
Get-Foo {............}
se il blocco di script è molto lungo, potresti voler scrivere:
Get-Foo
{
...............
...............
...............
}
Ma questo non funzionerà: il parser vedrà due istruzioni. Il primo è Get-Foo
e il secondo è un blocco di script. Invece, scrivo:
Get-Foo {
...............
...............
...............
}
Potrei usare il carattere di continuazione di riga (`) ma questo rende il codice difficile da leggere e invita i bug.
Poiché questo caso richiede che la parentesi aperta sia sulla riga precedente, seguo questo schema ovunque:
if (condizione) {
.....
}
Si noti che le if
istruzioni richiedono un blocco di script nella grammatica della lingua, quindi il parser cercherà nella riga successiva il blocco di script, ma per coerenza, mantengo il parentesi aperta aperta sulla stessa riga.
Allo stesso modo, nel caso di condotte lunghe, mi rompo dopo il carattere pipe ( |
):
$ project.Items |
? {$ _. Key -eq "ProjectFile"} |
% {$ _. Value} |
% {$ _. EvaluatedInclude} |
% {
.........
}