Ben hem kullanılma nedeni inanıyoruz nil ve boş eski öncelikle bir isimdir ve ikincisi öncelikle bir sıfat (ben kontrol olmasıdır web'de : Amerikan Heritage 1992 ile benim kağıt dictionnary olarak).
Anlam ve tarih ile ilgili olarak, NIL Latince "nihil" den gelen ve "hiçbir şey" anlamına gelen bir daralmadır.
Bildiğim nil
kadarıyla, boş bir işaretçiyi belirtmek için adın kullanımı Lisp (1958) programlama dili ile tanıtıldı .
Bir boş gösterici hiçbir şey işaret etmek gerekiyordu bir işaretçi değeridir ve bu nedenle indirgenmedikleri edilmemelidir. Çoğu durumda, işaretçiler basitçe bellek adresleridir. Böyle bir işaretçi içermesi amaçlanan herhangi bir değişken (yani herhangi bir konum) her zaman bir miktar bit yapılandırması içerecektir ve bu tür bir yapılandırma bir bellek adresi olarak okunabilir. Bu nedenle, değerin nil
program için yasaklanmış bir bellek alanının adresi olması, bu nedenle programın nil
sadece bir hata olabilmesi için programın ayrıştırılması girişiminde bulunması durumunda bir tür başarısızlığa (muhtemelen kesintiye) neden olması durumudur .
Bu rolü oynamak için önceden tanımlanmış benzersiz bir standart değere sahip olmak, işaretçileri açıkça kullanan dillerde önemlidir, çünkü bir işaretçinin bir bellek konumuna işaret edip etmediğini test edebilmek önemlidir. Tipik olarak, Lisp'te, bir liste elemanına bir "araba" işaretçisi ve bir sonraki çifte bir "cdr" işaretçisi içeren bir "eksilerini" çiftleri olarak bir liste oluşturulmuştur. Listenin son çiftinde ikinci işaretçi vardı nil
.
Bu, listenin boş bir liste veya bir listeye birleştirilmiş bir liste öğesi olarak özyinelemeli tanımına karşılık gelir. Bu nedenle öğesi olmayan bir liste ile temsil edildi nil
. Bu boş liste, monoid listesinin kimliği olur.
Listeler kümeleri temsil etmek için kullanılabileceğinden, boş küme bu durumda da ile temsil edilebilir nil
.
Bu nedenle nil
tarihsel olarak özel bir işaretçi değeriydi, ancak listeler veya kümeler gibi daha soyut alanlar için özel bir kimlik değeri olarak anlaşılmaya başlandı.
Eş değerine sahip bir işaretçi nil
bir boş göstericiydi, boş, bir temelden ziyade bir sıfat (yani bir ad) idi.
Her iki kelimenin sıfat ve isim olarak koordineli kullanımı diğer uygulamalarla oldukça tutarlıdır. Niteleyici null genellikle bir monoidin kimliği gibi bir cebirsel yapının sıfırında kullanılır: null eleman . Listeler , nil değerinin kimlik olduğu bir monoid oluşturur . Aynı şey kümeler için de geçerlidir (daha birçok özelliğe sahip bir cebir oluştursalar da). Benzer şekilde, bir tamsayı sıfır olduğunda boştur .
Programlama dillerinin yazarlarına ve kendine özgü ifadelerine bağlı olarak, bu kelimelerin başkaları gibi kullanımı gibi birçok varyasyonu vardır.
İki büyük çağrışım yukarıda açıklandığı gibidir
standart olarak "tanımlanmamış değer" olarak, gerçekte kullanılabilir herhangi bir değerin yokluğunu temsil eder.
bazı alan adlarının kimlik değeri olarak
Bu, NIL'in kabul edilen cevapta Gilles tarafından yapıldığı gibi " bir değerin yokluğunu temsil eden bir değer " olduğunu iddia etmenin doğru olmadığını göstermektedir . Dile ve kullanımlarına bağlıdır. Programlama dili LISP muhtemelen 55 yıl önce programlama terminolojisinde NIL tanıtıldı. LISP'de boş listedir ve eşdeğer olarak not edilebilir Bir değerin yokluğunu temsil etmez. Bazen eksik değerler için yer tutucu olarak kullanılır, ancak boş liste bir değer olduğu için genellikle bundan kaçınılmalıdır. Programcı tarafından seçilen ve kabul edilebilir değerlerle karıştırılamayan herhangi bir keyfi nesnede bir yapıda eksik bir değeri ifade eden şey.NIL
()
doğal temsili olan .
Her ne kadar yukarıda ilişkili olabileceğini göstermiş olsak da, iki kavram oldukça farklıdır. Gilles'answer tarafından numaralandırılan terminolojinin kullanımıyla ilgili mod ayrıntılı bir sınıflandırmaya sahip olmak, bu kelimelerin her birinin kullanımının bir çağrışım ya da diğerine yönelik olup olmadığını görmek ilginç olabilir.
İsimler, söylemi tanımlayan kişi tarafından belirli bir bağlamda kastetmek için atandıkları şeyden başka bir şey değildir. Bazı kullanımlar daha yaygın, daha doğal veya daha tutarlıdır, ancak kişi her zaman tanımları kontrol etmeli ve her bağlamda hangi anlamın amaçlandığından emin olmalıdır. Ve her zaman terminolojinin tat veya tutarlılıkla seçilmesini beklememelisiniz.
NULL
(C uyumluluğu için) hem denil
; yöntemleri çağırmaknil
bir işlemdir. JavaScript hemnull
(hiçbir şeyi temsil eden bir değer) hem de (değerundefined
ayarlanmamıştır) vardır.