ในภาษาที่พิมพ์อย่างรุนแรงเช่น Java และ C #, void
(หรือVoid
) เป็นชนิดส่งคืนสำหรับวิธีการดูเหมือนจะหมายถึง:
วิธีนี้จะไม่ส่งคืนสิ่งใดเลย ไม่มีอะไร ไม่มีการส่งคืน คุณจะไม่ได้รับอะไรจากวิธีนี้
สิ่งที่แปลกจริงๆคือใน C void
เป็นชนิดส่งคืนหรือเป็นชนิดพารามิเตอร์ method หมายความว่า:
มันอาจเป็นอะไรก็ได้ คุณต้องอ่านซอร์สโค้ดเพื่อค้นหา โชคดี. หากเป็นตัวชี้คุณควรรู้ว่าคุณกำลังทำอะไรอยู่
ลองพิจารณาตัวอย่างต่อไปนี้ใน C:
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*
ซึ่งเป็นสิ่งที่แตกต่างอย่างสิ้นเชิง