Dalam bahasa yang sangat diketik seperti Java dan C #, void
(atau Void
) sebagai tipe kembali untuk metode tampaknya berarti:
Metode ini tidak mengembalikan apa pun. Tidak ada. Tidak kembali Anda tidak akan menerima apa pun dari metode ini.
Apa yang benar-benar aneh adalah bahwa dalam C, void
sebagai tipe pengembalian atau bahkan sebagai tipe parameter metode berarti:
Bisa jadi apa saja. Anda harus membaca kode sumber untuk mengetahuinya. Semoga berhasil. Jika itu sebuah pointer, Anda harus benar-benar tahu apa yang Anda lakukan.
Perhatikan contoh-contoh berikut dalam 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;
}
Jelas, metode kedua mengembalikan pointer, yang menurut definisi bisa apa saja.
Karena C lebih tua dari Java dan C #, mengapa bahasa-bahasa ini mengadopsi yang void
berarti "tidak ada" sementara C menggunakannya sebagai "tidak ada atau apa pun (ketika pointer)"?
Object
dalam satu kasus untuk disatukan.
dynamic
jenis yang jarang digunakan?
void
sementara contoh kode menggunakanvoid*
sesuatu yang sama sekali berbeda.