Skip to main content

อาร์เรย์ที่ว่างเปล่าคืออะไร?

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

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

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

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