In den meisten C-ähnlichen Sprachen platziere ich meine Klammern absichtlich dort, wo sie meiner Meinung nach den Code am einfachsten lesen lassen.
Der Parser von PowerShell erkennt, wenn eine Anweisung eindeutig nicht vollständig ist, und blickt in die nächste Zeile. Stellen Sie sich beispielsweise ein Cmdlet vor, das einen optionalen Skriptblockparameter verwendet:
Get-Foo {............}
Wenn der Skriptblock sehr lang ist, möchten Sie möglicherweise schreiben:
Get-Foo
{
...............
...............
...............
}}
Dies funktioniert jedoch nicht: Der Parser sieht zwei Anweisungen. Der erste ist Get-Foo
und der zweite ist ein Skriptblock. Stattdessen schreibe ich:
Get-Foo {
...............
...............
...............
}}
Ich könnte das Zeilenfortsetzungszeichen (`) verwenden, aber das führt zu schwer lesbarem Code und führt zu Fehlern.
Da in diesem Fall die offene Klammer in der vorherigen Zeile stehen muss, folge ich diesem Muster überall:
if (Bedingung) {
..... .....
}}
Beachten Sie, dass if
Anweisungen einen Skriptblock in der Sprachgrammatik erfordern, sodass der Parser in der nächsten Zeile nach dem Skriptblock sucht. Aus Gründen der Konsistenz behalte ich die offene Klammer in derselben Zeile.
Bei langen Pipelines breche ich einfach nach dem Pipe-Zeichen ( |
):
$ project.Items |
? {$ _. Key -eq "ProjectFile"} |
% {$ _. Wert} |
% {$ _. EvaluatedInclude} |
% {
.........
}}