जावा और सी #, void
(या Void
) जैसी दृढ़ता से टाइप की जाने वाली भाषाओं में एक विधि के लिए वापसी प्रकार का अर्थ लगता है:
यह विधि कुछ भी वापस नहीं करती है। कुछ भी तो नहीं। वापसी नहीं। आपको इस विधि से कुछ भी प्राप्त नहीं होगा।
क्या वास्तव में अजीब है कि सी में, void
वापसी प्रकार के रूप में या यहां तक कि एक विधि पैरामीटर प्रकार के रूप में इसका मतलब है:
यह वास्तव में कुछ भी हो सकता है। यह जानने के लिए आपको स्रोत कोड पढ़ना होगा। सौभाग्य। यदि यह एक सूचक है, तो आपको वास्तव में पता होना चाहिए कि आप क्या कर रहे हैं।
सी में निम्नलिखित उदाहरणों पर विचार करें:
void describe(void *thing)
{
Object *obj = thing;
printf("%s.\n", obj->description);
}
void *move(void *location, Direction direction)
{
void *next = NULL;
// logic!
return next;
}
जाहिर है, दूसरा तरीका एक पॉइंटर लौटाता है, जो परिभाषा के अनुसार कुछ भी हो सकता है।
चूँकि C, Java और C # से पुराना है, इसलिए इन भाषाओं ने void
"कुछ भी नहीं" अर्थ के रूप में अपनाया, जबकि C ने इसे "कुछ नहीं या कुछ भी नहीं (जब एक पॉइंटर)" के रूप में इस्तेमाल किया।
Object
एक मामले में खंडन करने के लिए कहते हैं।
dynamic
प्रकार से है जिसका उपयोग शायद ही कभी किया जाता है?
void
जबकि कोड उदाहरण का उपयोग करता हैvoid*
जो कुछ पूरी तरह से अलग है।