การเขียนโปรแกรมไม่ใช่แค่การเขียนโค้ดตามขั้นตอนแล้วเสร็จ แต่ยังต้องมีการเข้าใจถึงแนวคิด และสถาปัตยกรรมที่เอื้อให้เราใช้ประโยชน์จากโค้ดได้อย่างสูงสุด ในบทความนี้ เราจะพูดถึงการใช้งาน `return` และ `yield` ใน ABAP พร้อมตัวอย่างโค้ดที่จะแสดงให้เห็นถึงความแตกต่าง และนำเสนอ use case ที่น่าสนใจในโลกจริง
คำจำกัดความ
- Return: เป็นคำสั่งที่ใช้ในการส่งค่ากลับจากฟังก์ชันหรือฟอร์ม โดยจะทำให้การทำงานของฟังก์ชันหยุดลงทันที และส่งค่าที่ต้องการกลับไปยังผู้เรียก - Yield: เป็นคำสั่งที่ใช้ในการส่งค่ากลับในช่วงการทำงานของฟังก์ชัน โดยไม่ทำให้การทำงานของฟังก์ชันหยุดลง ซึ่งทำให้สามารถคืนค่าหลายครั้งในระหว่างการทำงานของฟังก์ชันนั้น
ตัวอย่างการใช้งาน `RETURN`
ในตัวอย่างนี้ ฟังก์ชัน `calculate_square` จะรับค่าตัวเลข และคืนค่าความยาวของเลขที่ยกกำลัง 2 โดยใช้คำสั่ง `RETURN` เพื่อส่งค่าผลลัพธ์ออกมา ซึ่งเมื่อเรียกใช้ฟังก์ชันจะได้ค่าเป็น 25
ตัวอย่างการใช้งาน `YIELD`
ในตัวอย่างนี้ เราสร้างคลาส `lhc_example` โดยมีเมธอด `generate_numbers` ซึ่งส่งคืนค่าตัวเลขจาก 1 ถึง 10 โดยใช้คำสั่ง `YIELD` เพื่อคืนค่าภายในช่วงการทำงาน ทำให้เราสามารถสร้างค่าหลายค่าได้ภายในฟังก์ชันเดียว
การใช้ `RETURN` จะสิ้นสุดการทำงานของฟังก์ชันทันทีและส่งค่ากลับ ในขณะที่ `YIELD` ไม่มีการสิ้นสุดการทำงาน จึงทำให้สามารถสร้างการส่งค่าต่อเนื่องได้โดยไม่ต้องสร้างฟังก์ชันหลายตัว
การเก็บข้อมูลจากฐานข้อมูล
หนึ่งใน use case ที่ชัดเจนคือ การเก็บข้อมูลจากฐานข้อมูลเพื่อการแสดงผลในรายงาน เรายังสามารถใช้ `YIELD` เพื่อส่งค่าข้อมูลในทุกๆ รอบของการอ่านข้อมูล
ในตัวอย่างนี้ ฟังก์ชัน `get_employee_ids` จะค้นหาหมายเลขพนง. จากตารางฐานข้อมูล แล้วส่งกลับด้วยการใช้ `YIELD` เพื่อให้สามารถใช้ค่าที่ได้ในช่วงต่างๆ ได้
การใช้ `return` และ `yield` ใน ABAP มีความสำคัญในการพัฒนาโปรแกรมของเรา เนื่องจากช่วยให้เรามีความยืดหยุ่นในการส่งค่าจากฟังก์ชัน ผ่านตัวอย่างที่ได้แสดงให้เห็น เราหวังว่า คุณผู้อ่านจะได้เรียนรู้ถึงการทำงานของสองคำสั่งนี้ และสามารถนำไปประยุกต์ใช้ได้ในโปรเจกต์ของตนเอง
หากคุณต้องการนำความรู้เหล่านี้ไปพัฒนาทักษะด้านการเขียนโปรแกรมให้ลึกซึ้งกว่าเดิม มาร่วมเรียนรู้ที่ EPT (Expert-Programming-Tutor) สถาบันที่พร้อมจะพาคุณสู่การเป็นโปรแกรมเมอร์ที่มีคุณภาพ!
มาเริ่มต้นเส้นทางการเรียนรู้โปรแกรมมิ่งกับ EPT และพัฒนาศักยภาพของคุณไปพร้อมกัน!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: java c# vb.net python c c++ machine_learning web database oop cloud aws ios android
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com