Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

วิธีบอกให้โปรแกรม Ruby ของคุณหยุดทำงานก่อนกำหนด

คุณจะหยุดโปรแกรม 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 เมธอด รหัสสถานะการออก และวิธีแยกวงจร

อย่าลืมแชร์บทความนี้เพื่อให้คนอื่นได้สนุกไปกับมัน

ขอบคุณที่อ่าน! 🙂