คุณจะหยุดโปรแกรม Ruby ได้อย่างไร
โดยปกติโปรแกรม จะทำงานจนกว่าจะเสร็จสิ้น กำลังดำเนินการตามคำแนะนำทั้งหมด
หรือจนกว่าจะเกิดข้อยกเว้นที่ไม่ได้รับการจัดการ
แต่ถ้าคุณกำลังเขียนโปรแกรม Ruby ที่ไม่ต้องรันตลอดเวลา คุณอาจต้องการหยุดโปรแกรมก่อนกำหนดด้วยเหตุผลใดก็ตาม
คุณสามารถทำได้โดยใช้ exit
วิธีการ
วิธีการออกนี้ทำงานอย่างไร
มาคุยกันเถอะ!
วิธีต่างๆ ในการหยุดโปรแกรม
เมื่อคุณโทร exit
โปรแกรมของคุณจะไม่หยุดทันที
นี่คือสิ่งที่เกิดขึ้น :
Ruby ยก SystemExit
ข้อยกเว้นซึ่งทำให้ส่วนอื่น ๆ ของโปรแกรมของคุณมีโอกาสที่จะทำความสะอาด
คุณสามารถเรียกใช้รหัสนี้เพื่อดูการสาธิต :
begin exit rescue SystemExit p 123 end
พิมพ์ 123
ก่อนออก
หากคุณต้องการให้โปรแกรมของคุณข้ามขั้นตอนการล้างข้อมูลนี้ คุณสามารถใช้ exit!
.
นี่คือตัวอย่าง :
begin exit! rescue SystemExit p 123 end
สังเกตว่าสิ่งนี้จะไม่พิมพ์ 123
ก่อนจบรายการ
คุณสามารถใช้วิธีอื่นได้เช่นกัน
เรียกว่า abort
.
ด้วยวิธีนี้ คุณสามารถระบุข้อความแสดงข้อผิดพลาดได้
ถูกใจสิ่งนี้ :
abort "No Bacon Left"
ซึ่งเหมือนกับ :
warn "No Bacon Left!" exit 1
warn
วิธีพิมพ์ข้อความแสดงข้อผิดพลาดไปยังข้อผิดพลาดมาตรฐาน
แต่นี่อะไร 1
อาร์กิวเมนต์สำหรับ exit
?
นั่นคือหัวข้อถัดไปของการสนทนา!
การทำความเข้าใจรหัสสถานะ
เมื่อโปรแกรมสิ้นสุดลง ไม่ใช่แค่โปรแกรม Ruby แต่โปรแกรมใดๆ จะทิ้งรหัสสถานะไว้เบื้องหลัง
นี่คือสิ่งที่คุณต้องรู้ :
- รหัสสถานะของ
0
หมายถึงรายการสิ้นสุดตามปกติ - รหัสสถานะอื่นๆ (ไม่ใช่
0
) ใช้เพื่อส่งสัญญาณเงื่อนไขข้อผิดพลาด - ผลของการส่งคืนรหัสสถานะที่ไม่ใช่ศูนย์ขึ้นอยู่กับสภาพแวดล้อมปัจจุบันของคุณ
สิ่งนี้มีประโยชน์ เพราะระบบปฏิบัติการหรือโปรแกรมปกติ สามารถใช้รหัสสถานะนี้ได้ สำหรับการตรวจสอบ บันทึก และแม้กระทั่งการรีสตาร์ทโปรแกรมที่ล้มเหลวโดยอัตโนมัติ
ใน Linux คุณสามารถใช้ echo $?
เพื่อค้นหารหัสสถานะการออกของโปรแกรมสุดท้าย
กลับไปที่รูบี้กันเถอะ :
เมื่อคุณโทร exit
รหัสสถานะคือ 0
โดยค่าเริ่มต้น
คุณสามารถส่งรหัสสถานะอื่นเป็นอาร์กิวเมนต์ได้
นั่นเป็นเหตุผลที่เมื่อคุณเรียก abort
รหัสสถานะถูกตั้งค่าเป็น 1
, abort
เมธอดใช้เพื่อส่งสัญญาณข้อผิดพลาด
หยุดการวนซ้ำ
หากคุณไม่ต้องการหยุดทั้งโปรแกรมแต่แค่วนซ้ำ คุณต้องใช้บางอย่างที่แตกต่างออกไป
คุณสามารถใช้ break
คีย์เวิร์ด:
while 1 == 1 break end
สิ่งนี้ยังใช้งานได้ภายในบล็อก ไม่ใช่แค่ในขณะที่วนซ้ำ
การออกจากเมธอด
วิธีการของ Ruby จะจบลงอย่างเป็นธรรมชาติในบรรทัดสุดท้ายของโค้ด
หากคุณต้องการออกก่อนหน้านี้…
ใช้ return
คีย์เวิร์ด
ตัวอย่าง :
def apples return "I had my two apples today" "bacon" end
รหัสนี้ไม่มีวันไปถึง "bacon"
เนื่องจาก return
ก่อนกำหนด .
โบนัส:การหยุดการวนซ้ำที่ไม่สิ้นสุด
มันเกิดขึ้น
บางครั้งคุณลืมเพิ่มตัวนับและสร้างวนซ้ำไม่สิ้นสุด .
หากต้องการให้โปรแกรมของคุณหยุดทำงาน คุณสามารถกดคีย์ผสม:
CTRL+C
สรุป
คุณได้เรียนรู้เกี่ยวกับ exit
วิธีการใน Ruby การ abort
เมธอด รหัสสถานะการออก และวิธีแยกวงจร
อย่าลืมแชร์บทความนี้เพื่อให้คนอื่นได้สนุกไปกับมัน
ขอบคุณที่อ่าน! 🙂