ในการเขียนโปรแกรมด้วยภาษา Rust หนึ่งในคุณลักษณะที่ทำให้ภาษานี้น่าสนใจคือการใช้ flow control ที่ชัดเจนและเข้มงวดซึ่งช่วยให้นักพัฒนาจัดการกับความเข้าใจของโค้ดได้ดีขึ้น คำสั่ง `return` และ `yield` ใน Rust นั้นมีบทบาทสำคัญในการควบคุมการไหลของโปรแกรมและผลลัพธ์ของฟังก์ชัน ในบทความนี้เราจะไปดูการใช้งานของ `return` และ `yield` ผ่านตัวอย่างของ code และอธิบาย usecase ที่เกี่ยวข้องกับการทำงานในโลกจริง
ใน Rust, `return` เป็นคำสั่งที่ใช้สำหรับออกจากฟังก์ชันพร้อมกับค่าที่กำหนด นี่คือตัวอย่างการใช้ `return`:
เมื่อเรียกใช้ `calculate_area(5, 10)` ฟังก์ชันจะคำนวณและส่งคืนค่าพื้นที่โดยใช้คำสั่ง `return` ค่าที่ได้คือ `50`.
ใน Rust, `yield` ใช้ในการประกาศ generator ซึ่งในขณะที่เขียนนี้ Rust ยังไม่มีคำสั่ง `yield` ในรุ่น stable แต่มีใน nightly builds และอาจจะถูกเพิ่มเข้ามาในภายหลัง การใช้ `yield` จะช่วยให้สามารถหยุดและเริ่ม generator เพื่อส่งคืนค่าบางอย่างโดยไม่จบฟังก์ชัน ถือเป็นการทำงานแบบ lazy evaluation ที่ค่านั้นจะถูกคำนวณเมื่อจำเป็นจริงๆ
ตัวอย่าง 1: การใช้ `return`
ตัวอย่าง 2: การใช้ generator สมมติ `yield` (nightly Rust)
*หมายเหตุ: รหัสนี้ต้องใช้ใน Rust nightly เพราะเป็นคุณสมบัติที่ยังไม่ได้เปิดใช้ในเวอร์ชั่น stable.
ตัวอย่าง 3: การใช้ `return` สำหรับ early exit
การใช้ `return` นั้นคุ้นเคยกับนักพัฒนาส่วนใหญ่ มักใช้ในฟังก์ชันที่ต้องการออกก่อนเวลาหรือส่งคืนค่าทันที เช่น ในตัวอย่างที่ 3 การหาตัวหารถ้าเจอตัวหารที่เหมาะสมก็สามารถส่งคืนค่าทันทีโดยไม่ต้องทำการคำนวณต่อไป
ด้านการใช้ `yield` ใน Rust นั้นอาจถูกใช้เป็นตัวสร้าง generator ซึ่งสามารถให้ผลลัพธ์ทีละเล็กทีละน้อย ราวกับการสตรีมข้อมูล ตัวอย่างเช่น แอปพลิเคชันที่ต้องการส่งข้อมูลชุดใหญ่ไปยังไคลเอนต์ แต่การโหลดทั้งหมดในครั้งเดียวอาจจะสร้างความหน่วงในระบบ ใช้ `yield` สามารถช่วยในการสร้างข้อมูลชิ้นเล็กๆ เพื่อส่งไปยังไคลเอนต์
เมื่อคุณได้เรียนรู้และทำความเข้าใจเกี่ยวกับแนวทางนี้แล้ว คุณจะพบว่าการเขียนโปรแกรมนั้นเต็มไปด้วยความท้าทายและการแก้ปัญหาที่น่าสนใจ EPT หรือ Expert-Programming-Tutor เป็นสถาบันที่พร้อมจะช่วยให้คุณเข้าใจและควบคุมภาษาการเขียนโปรแกรมอย่าง Rust ได้อย่างลึกซึ้งและการันตีผลลัพธ์ทางการเรียนที่ดีมีคุณภาพ เรียนกับเรา คุณจะไปได้ไกลกว่าการเขียนโค้ดทั่วไป เพราะเราเน้นเทคนิคและการวิเคราะห์ที่จะทำให้คุณเป็นนักพัฒนาที่เข้าใจรากฐานและสามารถสร้างสรรค์งานได้โดยไม่มีขีดจำกัด
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM