ในโลกของการเขียนโปรแกรม เราจะพบกับคำสั่งที่ใช้ในการส่งค่ากลับจากฟังก์ชัน ซึ่งสองคำสั่งที่สำคัญในภาษา Dart คือ `return` และ `yield` ถึงแม้ว่าทั้งสองจะมีหน้าที่ในการส่งค่ากลับไปยังผู้เรียกฟังก์ชัน แต่การทำงานและพฤติกรรมของมันสามารถแตกต่างกันอย่างมาก
การใช้งาน `return`
คำสั่ง `return` ใช้ในการส่งค่ากลับจากฟังก์ชันในทันที และฟังก์ชันจะสิ้นสุดการทำงานทันทีที่เจอคำสั่งนี้ สามารถใช้ส่งค่าผลลัพธ์เดียวจากฟังก์ชันได้ ตัวอย่างโค้ดที่แสดงการใช้งาน `return` มีดังนี้:
ในตัวอย่างนี้ ฟังก์ชัน `calculateSum` จะรับค่า 2 ค่าเป็นพารามิเตอร์แล้วทำการบวกและส่งผลลัพธ์กลับไป โดยเมื่อติดตั้งคำสั่ง `return` ผลลัพธ์จะถูกส่งกลับในทันทีและฟังก์ชันจะหยุดทำงาน
การใช้งาน `yield`
ในทางกลับกัน คำสั่ง `yield` ใช้ในการสร้าง generator ซึ่งช่วยให้เราสามารถสร้างชุดข้อมูลที่สามารถวนลูปได้ โดยไม่ต้องสร้าง list ทั้งหมดในครั้งเดียว การเรียกใช้ `yield` จะส่งค่ากลับไป แต่ฟังก์ชันจะยังคงสามารถทำงานต่อได้ จนกว่าเราจะใช้คำสั่ง `return` หรือฟังก์ชันจะเสร็จสิ้น ทั้งนี้เราสามารถเรียกใช้ generator ด้วยคำสั่ง `await for` ในการอ่านค่าใน loop ตัวอย่างโค้ดที่แสดงการใช้งาน `yield` มีดังนี้:
ในตัวอย่างนี้ ฟังก์ชัน `generateNumbers` จะสร้างจำนวนเต็ม ตั้งแต่ 1 ถึง n และใช้คำสั่ง `yield` เพื่อส่งค่าทีละค่าไปยังผู้เรียก ซึ่งช่วยให้เราสามารถใช้ชุดของตัวเลขได้โดยไม่ต้องสร้าง list ทั้งหมด ทำให้การใช้หน่วยความจำเป็นไปอย่างมีประสิทธิภาพ
ใช้ `return`
: สมมุติว่าเรามีฟังก์ชันที่รับข้อมูลนักเรียน แล้วเราต้องการคำนวณเกรดเฉลี่ยของนักเรียนทั้งหมดในชั้นเรียน โดยฟังก์ชันสามารถส่งค่ากลับเป็นเกรดเฉลี่ย (GPA) ได้อย่างรวดเร็วใช้ `yield`
: สมมุติว่าเรากำลังแสดงผลข้อมูลผู้ใช้งานจากฐานข้อมูลที่ใหญ่ เราอาจไม่ต้องการโหลดข้อมูลทั้งหมดในครั้งเดียว แต่ต้องการให้แสดงผลตามจำนวนที่ต้องการ เช่น การแสดงผลเฉพาะ 10 ข้อมูลต่อครั้ง การใช้ `yield` จะช่วยให้เราสามารถโหลดข้อมูลทีละชุด เช่น การส่งข้อมูลผู้ใช้หนึ่งคนไปยังส่วน frontend เพื่อแสดงผลให้ผู้ใช้งานเห็น
การเลือกใช้ระหว่าง `return` และ `yield` ขึ้นอยู่กับชนิดของการทำงานที่เราต้องการ ในขณะที่ `return` จะมีความเหมาะสมกับฟังก์ชันที่ให้ค่าผลลัพธ์เดี่ยว แบบเรียบร้อย `yield` จะมีพลังมากกว่าสำหรับฟังก์ชันที่ต้องการสร้างชุดข้อมูลทีละชิ้น ในโลกการเขียนโปรแกรม การเข้าใจและใช้งาน `return` และ `yield` จะช่วยให้เราออกแบบฟังก์ชันที่มีประสิทธิภาพและตรงกับความต้องการได้มากขึ้น
หากคุณสนใจการเรียนรู้การเขียนโปรแกรมและต้องการขยายความรู้ในด้านนี้ เราขอเชิญคุณมาร่วมเรียนที่ EPT (Expert-Programming-Tutor) ที่จะสอนเทคนิคต่างๆ ที่จะช่วยให้คุณเป็นโปรแกรมเมอร์ขั้นเทพ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง 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