ในภาษาที่เหมือน C ส่วนใหญ่ฉันพิจารณาเกี่ยวกับการจัดฟันของฉันโดยที่ฉันคิดว่าพวกเขาทำให้โค้ดอ่านง่ายที่สุด
โปรแกรมแยกวิเคราะห์ของ PowerShell จดจำเมื่อคำสั่งไม่ชัดเจนและมองไปที่บรรทัดถัดไป ตัวอย่างเช่นลองนึกภาพ cmdlet ที่รับพารามิเตอร์บล็อกสคริปต์เผื่อเลือก:
รับ -Foo {............ }
หากบล็อกสคริปต์ยาวมากคุณอาจต้องการเขียน:
Get-Foo
{
...............
...............
...............
}
แต่สิ่งนี้จะไม่ทำงาน: โปรแกรมแยกวิเคราะห์จะเห็นสองข้อความ สิ่งแรกคือGet-Foo
และสิ่งที่สองคือบล็อกสคริปต์ ฉันเขียนแทน:
รับ -Foo {
...............
...............
...............
}
ฉันสามารถใช้ตัวอักษรต่อเนื่องบรรทัด (`) แต่ที่ทำให้รหัสที่ยากต่อการอ่านและเชิญแมลง
เนื่องจากกรณีนี้ต้องใช้วงเล็บปีกกาเปิดเพื่ออยู่ในบรรทัดก่อนหน้าฉันจึงทำตามรูปแบบนั้นทุกที่:
ถ้า (เงื่อนไข) {
.....
}
โปรดทราบว่าif
ข้อความสั่งต้องใช้สคริปต์บล็อกในไวยากรณ์ภาษาดังนั้น parser จะค้นหาบรรทัดถัดไปสำหรับบล็อกสคริปต์ แต่เพื่อความมั่นคงฉันจะเปิดวงเล็บปีกกาในบรรทัดเดียวกัน
อย่างในกรณีของท่อยาว ๆ ฉันจะแยกตามตัวอักษรไพพ์ ( |
):
$ project.Items |
? {$ _. Key -eq "ProjectFile"} |
% {$ _. มูลค่า} |
% {$ _. EvaluatedInclude} |
% {
.........
}