30
GOTO ยังถือว่าเป็นอันตรายหรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ทุกคนตระหนักถึงจดหมายถึงบรรณาธิการของ Dijkstra : ไปที่ข้อความที่ถือว่าเป็นอันตราย (เช่นที่นี่ . html การถอดเสียงและที่นี่ . pdf) และมีการผลักดันที่น่ากลัวตั้งแต่นั้นมา ในขณะที่มันเป็นไปได้ที่จะใช้ในการผลิตกลับไปข้าง unmaintainable รหัสแผ่กิ่งก้านสาขา แต่กระนั้นมันก็ยังคงอยู่ในการเขียนโปรแกรมภาษาที่ทันสมัย แม้แต่โครงสร้างการควบคุมความต่อเนื่องขั้นสูงใน Scheme ก็สามารถอธิบายได้ว่าเป็น goto ที่ซับซ้อน มีกรณีใดบ้างที่รับประกันการใช้ goto? ควรหลีกเลี่ยงเมื่อใด ตามคำถามการติดตาม: C มีฟังก์ชั่นคู่หนึ่งคือ setjmp และ longjmp ที่ให้ความสามารถในการข้ามไปไม่ได้อยู่ในกรอบสแต็กปัจจุบันเท่านั้น แต่อยู่ในกรอบการเรียกใด ๆ สิ่งเหล่านี้ควรได้รับการพิจารณาว่าอันตรายหรือไม่? อันตรายมาก? Dijkstra เองรู้สึกเสียใจกับตำแหน่งนั้นซึ่งเขาไม่รับผิดชอบ ในตอนท้ายของEWD1308 (เช่นกันที่นี่ . pdf) เขาเขียนว่า: ในที่สุดเรื่องสั้นสำหรับการบันทึก …