C gibi bir dilden geliyorsanız (C, C++, Java vb.), Birimi void
gibi düşünebilirsiniz. Hiçbir şey iade etmek istemediğinizde döndüğünüz tür. Tipik teorisyenler, birimin void değerine sahip olmadığına, ünitenin tam olarak 1 değerine sahip olduğuna, void'in de 0 değerine sahip olduğuna işaret edecektir.
Pratikte, her iki türde de depolayabileceğiniz bilgi miktarı aynıdır (0 bit), üniteyi kullanan diller daha iyi çalışmak eğiliminde olmalarına rağmen, başka bir değere göre davranabilirsiniz.
Bir değişken, yapı, koleksiyon veya bir değeri depolayabileceğiniz başka bir yerde saklayabilirsiniz. Bir argüman olarak geçebilir veya sonuç olarak iade edebilirsiniz. Bir referans oluşturabilirsiniz.
Peki, bu ne zaman yararlıdır? Temel olarak, ne tür bir değerle uğraştığınız umrumda değilken. Bu, gerçekte herhangi bir bilgi içermekte olup olmadığına dair endişelenmenize gerek kalmadan polimorfik/jenerik kod yazabileceğiniz anlamına gelir. Yani, gerçek verileri depoladığınıza veya ()
'a sahip olup olmadığınıza dair özel bir duruma gerek yoktur.
Kullanıldığı yerlerin bir örneği HashSet
. Bir HashSet<T>
, aslında a thin wrapper around HashMap<T,()>
olarak uygulanır. (T
- ()
için jenerik türden bir harita)
Daha çok C benzeri dillerdeki 'void' gibi. Bildiğim kadarıyla, her şey pasda bir ifadedir, bu yüzden '' '' 'sadece etkileri için idam edilen bir şey tarafından döndürülen değerdir. – Lee
Kendi sıfır boyut tiplerinizi yapabilirsin, aynen '()' yapıp yapılandırabilirim 'MyNewZeroSizeType; 'Faydalı olabilir (" marker tipleri "!) – bluss
Bu java'da null gibi görünmüyor çünkü eğer geri döndüğünüzde bunun yerine bir '' '' '' 'döndüremediğini söyleyiniz. – JustGage