การเขียนโปรแกรมในสมัยนี้เต็มไปด้วยแนวคิดและเทคนิคใหม่ ๆ ที่ให้เราสามารถจัดการข้อมูลอย่างมีประสิทธิภาพ หนึ่งในแนวคิดที่น่าสนใจคือการใช้ `return` และ `yield` ซึ่งมีบทบาทสำคัญในภาษา JavaScript, โดยเฉพาะใน Node.js ที่เราใช้กันอย่างแพร่หลาย ในบทความนี้เราจะมาศึกษาความแตกต่างระหว่าง `return` กับ `yield` รวมถึงตัวอย่างโค้ดที่เข้าใจง่ายและใช้ได้จริงในโลกโปรแกรมมิ่ง
return
`return` เป็นคำสั่งที่ใช้ในฟังก์ชันเพื่อส่งค่ากลับไปยังการเรียกใช้งานฟังก์ชันนั้น ๆ เมื่อฟังก์ชันที่ใช้ `return` ดำเนินการเสร็จสิ้น ฟังก์ชันจะหยุดทำงานและส่งค่ากลับออกมา ในกรณีที่ฟังก์ชันไม่มี `return` จะถือว่าฟังก์ชันนั้นส่งค่ากลับเป็น `undefined`
ตัวอย่างโค้ดการใช้ return:
ในตัวอย่างข้างต้น ฟังก์ชัน `add` จะคำนวณผลรวมของ `a` และ `b` และคืนค่าผลลัพธ์กลับมา โดยที่เราสามารถนำไปใช้งานต่อในฟังก์ชันอื่นได้
yield
`yield` เป็นคำสั่งที่ใช้ในฟังก์ชันประเภท generator ซึ่งเป็นฟังก์ชันที่สามารถหยุดและกลับมาเริ่มทำงานต่อจากจุดที่ที่มันหยุดไปได้ การใช้ `yield` จะทำให้ฟังก์ชันสามารถสร้างค่าทีละค่าก่อนที่มันจะยุติการทำงาน
ตัวอย่างโค้ดการใช้ yield:
ในตัวอย่างนี้ ฟังก์ชัน `generatorFunction` จะสร้างหลายค่าขึ้นมา ทีละค่า ด้วยการใช้ `yield` ซึ่งเราสามารถดึงค่าที่เราต้องการทีละค่าจาก generator นี้ได้
- `return` จะหยุดการทำงานของฟังก์ชันและส่งค่ากลับมา ในขณะที่ `yield` จะทำให้ฟังก์ชันยังสามารถทำงานต่อได้ในอนาคต
2. ประเภทของฟังก์ชัน:- ฟังก์ชันที่ใช้ `return` เป็นฟังก์ชันปกติ ในขณะที่ `yield` ใช้ในฟังก์ชัน generator ที่เริ่มด้วย `function*`
3. การเรียกใช้:- ฟังก์ชันที่ใช้ `return` จะถูกเรียกใช้งาน และเมื่อถึง `return` ฟังก์ชันจะออกจากการทำงานโดยทันที ส่วนฟังก์ชัน generator ที่ใช้ `yield` สามารถยังกลับไปเริ่มทำงานร่วมกับ `next()` ได้
1. การทำงานกับข้อมูลขนาดใหญ่
ถ้าหากเรามีชุดข้อมูลขนาดใหญ่ การใช้ฟังก์ชัน generator จะช่วยให้เราสามารถประหยัดหน่วยความจำ โดยไม่มีความจำเป็นต้องโหลดชุดข้อมูลทั้งหมด พร้อมกันครั้งเดียว
ตัวอย่าง:
2. การประมวลผลข้อมูลในแบบ Stream
การใช้ generator ช่วยให้เราสามารถจัดการข้อมูลที่เข้ามาเป็น Stream ได้ ทำให้การประมวลผลสามารถทำได้อย่างต่อเนื่อง
ตัวอย่าง:
การใช้ `return` และ `yield` ใน Node.js มีข้อดีในตัวมันเองที่ช่วยให้คุณสามารถควบคุมการทำงานของฟังก์ชันได้ดีขึ้น ทำให้การเขียนโปรแกรมมีความยืดหยุ่นมากกว่าเดิม หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการเขียนโปรแกรมในเชิงลึก และเรียนรู้เทคนิคต่าง ๆ ที่จะทำให้การเขียนโปรแกรมของคุณมีประสิทธิภาพมากยิ่งขึ้น เราขอเชิญคุณมาศึกษาที่ 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