在Java和C#等强类型语言中,void
(或Void
)作为方法的返回类型似乎意味着:
此方法不返回任何内容。没有。没有回报。您不会从此方法收到任何信息。
真正奇怪的是,在C语言中,void
作为返回类型甚至方法参数类型的含义是:
真的可以是任何东西。您必须阅读源代码才能找到答案。祝好运。如果这是一个指针,那么您应该真的知道自己在做什么。
考虑以下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
“ nothing”的含义,而C却使用“ nothing or any(当指针时)”呢?
Object
在一种情况下将其称为歧义即可。
dynamic
说很少使用的类型吗?
void
在代码示例使用时谈论的,void*
这是完全不同的。