ฉันเชื่อว่าเหตุผลในการใช้ทั้งศูนย์และโมฆะก็คืออดีตเป็นคำนามเป็นหลักและคำต่อท้ายเป็นคำคุณศัพท์ (ฉันตรวจสอบในเว็บและในพจนานุกรมของฉัน: American Heritage 1992)
เกี่ยวกับความหมายและประวัติศาสตร์NILเป็นคำย่อมาจาก "nihil" ละตินซึ่งแปลว่า "ไม่มีอะไร"
สำหรับความรู้ของฉันการใช้ชื่อnil
เพื่อแสดงตัวชี้โมฆะถูกนำมาใช้กับภาษาการเขียนโปรแกรม Lisp (1958)
ชี้โมฆะคือค่าตัวชี้ที่ควรจะชี้ไปที่อะไรและควรจึงไม่ได้รับการ dereferenced ในกรณีส่วนใหญ่พอยน์เตอร์เป็นเพียงที่อยู่หน่วยความจำ ตัวแปรใด ๆ (เช่นที่ตั้งใด ๆ ) ที่มีวัตถุประสงค์เพื่อให้ตัวชี้ดังกล่าวมักจะมีการกำหนดค่าบิตบางส่วนและการกำหนดค่าใด ๆ ดังกล่าวสามารถอ่านได้เป็นที่อยู่หน่วยความจำ ดังนั้นจึงมักจะเป็นกรณีที่ค่าnil
จะเป็นที่อยู่ของพื้นที่หน่วยความจำที่ถูกห้ามไม่ให้โปรแกรมดังนั้นก่อให้เกิดความล้มเหลวในรูปแบบบางอย่าง (อาจขัดจังหวะ) หากโปรแกรมพยายาม dereference nil
ซึ่งสามารถเป็นข้อผิดพลาดเท่านั้น
การมีค่ามาตรฐานที่กำหนดไว้ล่วงหน้าเพื่อเล่นบทบาทนี้เป็นสิ่งจำเป็นในภาษาที่ใช้ตัวชี้อย่างชัดเจนเนื่องจากเป็นสิ่งสำคัญที่จะต้องทดสอบว่าตัวชี้กำลังชี้ไปยังตำแหน่งหน่วยความจำบางตำแหน่งหรือไม่ โดยทั่วไปใน Lisp รายการจะถูกสร้างขึ้นเป็นคู่ของ "cons" ที่มีตัวชี้ "รถยนต์" ต่อองค์ประกอบรายการและตัวชี้ "cdr" เป็นคู่ต่อไป nil
ในคู่สุดท้ายของรายการตัวชี้ที่สองคือ
สิ่งนี้สอดคล้องกับนิยามแบบเรียกซ้ำของรายการว่าเป็นรายการที่ว่างเปล่าหรือองค์ประกอบของรายการที่ต่อกับรายการ nil
ดังนั้นรายการที่มีองค์ประกอบไม่ถูกแทนด้วย รายการที่ว่างเปล่านี้เกิดขึ้นเป็นข้อมูลประจำตัวของรายการ monoid
nil
ตั้งแต่รายการที่สามารถนำมาใช้เพื่อเป็นตัวแทนของชุดคือชุดที่ว่างเปล่าสามารถในกรณีที่ยังจะแสดงโดย
ดังนั้นในnil
อดีตจึงเป็นค่าตัวชี้พิเศษ แต่ต้องเข้าใจว่าเป็นค่าตัวตนพิเศษสำหรับโดเมนนามธรรมอื่น ๆ เช่นรายการหรือชุด
ตัวชี้เท่ากับnil
เป็นตัวชี้โมฆะ null เป็นคำคุณศัพท์มากกว่าคำนาม (เช่นคำนาม)
การใช้การประสานงานของทั้งสองคำเป็นคำคุณศัพท์และคำนามค่อนข้างสอดคล้องกับการปฏิบัติอื่น ๆ รอบคัดเลือกnullมักจะใช้สำหรับเป็นศูนย์ของโครงสร้างพีชคณิตเช่นตัวตนของหนังสือที่คือองค์ประกอบ null รายการในรูปแบบmonoidโดยที่ค่าศูนย์คือตัวตน เช่นเดียวกับเซต (แม้ว่าพวกเขาจะสร้างพีชคณิตพร้อมคุณสมบัติอื่น ๆ อีกมากมาย) หนึ่งบอกว่าคล้ายกันว่าจำนวนเต็มเป็นโมฆะเมื่อมันเป็นศูนย์
มีความหลากหลายในการใช้คำเหล่านี้ที่คนอื่น ๆ เช่นไม่มีขึ้นอยู่กับผู้แต่งและนิสัยแปลก ๆ ของภาษาการเขียนโปรแกรม
ความหมายที่สำคัญสองประการดังที่อธิบายไว้ข้างต้น
นี้แสดงให้เห็นว่ามันไม่ถูกต้องค่อนข้างที่จะยืนยันว่า NIL คือ " ค่าซึ่งหมายถึง“การขาดของค่า " ในขณะที่ทำโดยกิลส์ในคำตอบที่ได้รับการยอมรับ ขึ้นอยู่กับภาษาและการใช้งาน LISP ภาษาการเขียนโปรแกรมอาจแนะนำศูนย์ในการเขียนโปรแกรมคำศัพท์ 55 ปีที่ผ่านมา ใน LISP NIL
เป็นรายการที่ว่างเปล่าและสามารถบันทึกได้เท่ากัน()
ซึ่งเป็นการแสดงตามธรรมชาติของรายการที่ว่างเปล่ามันไม่ได้เป็นตัวแทนของค่า บางครั้งมันถูกใช้เป็นตัวยึดตำแหน่งสำหรับค่าที่หายไปแม้ว่าจะหลีกเลี่ยงได้อย่างแม่นยำเพราะรายการที่ว่างเปล่าเป็นค่า สิ่งที่หมายถึงค่าที่หายไปในโครงสร้างในวัตถุใด ๆ ที่เลือกโดยโปรแกรมเมอร์ที่ไม่สามารถสับสนกับค่าที่ยอมรับได้
แนวคิดทั้งสองนั้นแตกต่างกันมากถึงแม้ว่าเราจะแสดงให้เห็นข้างต้นว่าพวกเขาสามารถเกี่ยวข้อง มันอาจน่าสนใจที่จะมีโหมด taxonomie แบบละเอียดเกี่ยวกับการใช้คำศัพท์ที่แจกแจงโดย Gilles'answer เพื่อดูว่าการใช้คำแต่ละคำเหล่านี้เน้นไปที่ความหมายแฝงหรืออีกนัยหนึ่งหรือไม่
ชื่อไม่ได้มากกว่าสิ่งที่พวกเขาได้รับมอบหมายให้หมายถึงในบริบทที่กำหนดโดยใครก็ตามที่กำหนดวาทกรรม การใช้งานบางอย่างเป็นเรื่องธรรมดามากขึ้นเป็นธรรมชาติหรือสอดคล้องกันมากกว่า แต่ก็ควรตรวจสอบคำจำกัดความทุกครั้งและตรวจสอบให้แน่ใจว่ามีความหมายอะไรที่ตั้งใจไว้ในแต่ละบริบท และหนึ่งไม่ควรคาดหวังคำศัพท์ที่ได้รับเลือกด้วยรสชาติหรือความสม่ำเสมอ
NULL
(สำหรับความเข้ากันได้ C) และnil
; วิธีการโทรnil
เป็น no-op JavaScriptมีทั้งnull
(ค่าที่แทนค่าอะไรเลย) และundefined
(ยังไม่ได้ตั้งค่า)