Trong các ngôn ngữ được gõ mạnh như Java và C #, void(hoặc Void) làm kiểu trả về cho một phương thức dường như có nghĩa là:
Phương pháp này không trả lại bất cứ điều gì. Không có gì. Không trở lại. Bạn sẽ không nhận được bất cứ điều gì từ phương pháp này.
Điều thực sự kỳ lạ là trong C, voidnhư một kiểu trả về hoặc thậm chí là một kiểu tham số phương thức có nghĩa là:
Nó thực sự có thể là bất cứ điều gì. Bạn sẽ phải đọc mã nguồn để tìm hiểu. Chúc may mắn. Nếu đó là một con trỏ, bạn thực sự nên biết những gì bạn đang làm.
Hãy xem xét các ví dụ sau trong 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;
}
Rõ ràng, phương thức thứ hai trả về một con trỏ, theo định nghĩa có thể là bất cứ điều gì.
Vì C cũ hơn Java và C #, tại sao các ngôn ngữ này lại voidcó nghĩa là "không có gì" trong khi C sử dụng nó là "không có gì hoặc bất cứ điều gì (khi một con trỏ)"?
Objecttrong một trường hợp để định hướng.
dynamicloại hiếm khi được sử dụng?
voidtrong khi ví dụ mã sử dụngvoid*đó là một cái gì đó hoàn toàn khác nhau.