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;
}
明らかに、2番目のメソッドはポインターを返しますが、これは定義上何でもかまいません。
CはJavaやC#よりも古いので、なぜこれらの言語はvoid
「何も」を意味するものとして採用したのに、Cは「何も何も(ポインターの場合)」として使用しませんでしたか?
Object
明確にするために1つのケースで単純に呼び出すことに注意してください。
dynamic
とは、めったに使用されないタイプを意味しますか?
void
、コード例で使用されvoid*
ているものとはまったく異なります。