Iterator คืออะไร

iterator เป็นโครงสร้างภาษาคอมพิวเตอร์ที่อนุญาตให้โปรแกรมอ่านกลุ่มของค่าข้อมูลหรือชิ้นส่วนของข้อมูลอย่างเป็นระบบ Iterators อนุญาตให้สมาชิกแต่ละคนในกลุ่มเข้าถึงได้โดยไม่กระทบกับคนอื่น ๆ ในกลุ่ม พวกเขาจะใช้ในภาษาสคริปต์และการเขียนโปรแกรมจำนวนมากรวมถึง C ++, Java, PHP และ Perl การนำไปใช้นั้นไม่ขึ้นอยู่กับวัตถุที่สแกนดังนั้นจึงสามารถสแกนกลุ่มวัตถุประเภทใดก็ได้

การเดินทางผ่านกลุ่มวัตถุที่มีตัววนซ้ำมักเรียกว่าการวนซ้ำหรือการแวะเวียน ในภาษาคอมพิวเตอร์ส่วนใหญ่จะใช้ตัววนซ้ำเพื่อสำรวจกลุ่มของวัตถุที่เกี่ยวข้องที่เรียกว่าการรวบรวม การใช้งานของพวกเขามีความยืดหยุ่นมากและสามารถใช้กับคอลเลกชันขนาดใดก็ได้ โดยทั่วไปแล้วจะปลอดภัยกว่าการเข้าถึงองค์ประกอบอย่างง่ายในคอลเลกชันเนื่องจากช่วงของพวกเขาจะ จำกัด เฉพาะองค์ประกอบในคอลเลกชัน แม้ว่ามันจะยังคงเป็นไปได้ที่จะเข้าถึงดัชนีนอกขอบเขต แต่ก็ไม่น่าจะเป็นไปได้หากใช้ตัววนซ้ำอย่างถูกต้อง

Iterators ถูกกำหนดค่าเริ่มต้นและจัดการในหน่วยความจำแตกต่างกันขึ้นอยู่กับภาษาคอมพิวเตอร์ที่ใช้ ไวยากรณ์ทั่วไปสำหรับพวกเขาในทางตรงกันข้ามจะคล้ายกันในภาษาส่วนใหญ่ มีไวยากรณ์สองประเภทที่แตกต่างกันซึ่งสามารถใช้สำหรับตัววนซ้ำกำหนดไว้อย่างชัดเจนหรือโดยนัย

ตัววนซ้ำอย่างชัดแจ้งเกี่ยวข้องกับการสร้างวัตถุตัววนซ้ำแล้วจึงนำวัตถุนั้นไปใช้ในการวนรอบการสำรวจองค์ประกอบของคอลเลกชัน ตัววนซ้ำโดยนัยเกี่ยวข้องกับโครงสร้างลูปชนิดพิเศษที่สร้างวัตถุตัววนซ้ำโดยไม่ได้ระบุไว้ล่วงหน้า ไม่ว่าจะใช้ตัววนซ้ำแบบชัดแจ้งหรือโดยนัยหรือไม่ก็ตามสำหรับการแวะผ่านใด ๆ โดยทั่วไปจะขึ้นอยู่กับความชอบของโปรแกรมเมอร์เนื่องจากความแตกต่างในจำนวนของรหัสหรือประสิทธิภาพระหว่างพวกเขานั้นเล็กน้อย ความแตกต่างที่ใหญ่ที่สุดระหว่างตัววนซ้ำอย่างชัดเจนและชัดแจ้งคือตัววนซ้ำอย่างชัดเจนแสดงการสร้างตัววนซ้ำในซอร์สโค้ดในขณะที่ตัววนซ้ำโดยนัยจะไม่แสดงสิ่งนี้

เมื่อใดก็ตามที่มีวัตถุสะสมอยู่สามารถใช้ตัววนซ้ำเพื่อสแกนวัตถุได้ ขึ้นอยู่กับความสามารถของภาษาคอมพิวเตอร์ตัววนซ้ำสามารถใช้กับอาร์เรย์แผนที่รายการและประเภทคอลเลกชันอื่น ๆ ได้หลากหลาย การทำซ้ำเป็นคุณลักษณะที่แพร่หลายของภาษาการเขียนโปรแกรมและภาษาทั่วไปส่วนใหญ่มีฟังก์ชันการทำงานบางประเภท ภาษาคอมพิวเตอร์บางภาษาอนุญาตให้ตัววนซ้ำพร้อมคุณสมบัติเพิ่มเติมเช่นข้อ จำกัด เกี่ยวกับจำนวนครั้งที่องค์ประกอบถูกเข้าถึง เนื่องจากคุณสมบัติเหล่านี้ไม่เป็นสากลจึงมีบางวิธีที่สามารถใช้งานได้อย่างอิสระจากตัววนซ้ำเอง