Untuk mencipta struktur data yang boleh mengandungi sebarang jenis dalam Go, pertimbangkan untuk menggunakan antara muka kosong.
Menurut Spesifikasi Bahasa Pengaturcaraan Go, "semua jenis melaksanakan antara muka kosong." Ini bermakna anda boleh mentakrifkan pembolehubah jenis antara muka{} dan menetapkan nilai bagi sebarang jenis bukan antara muka.
var value interface{} = 10
Kefungsian ini membolehkan anda mencipta struktur data yang boleh menyimpan nilai apa-apa jenis, serupa dengan penunjuk tidak sah dalam C. Sebagai contoh, anda boleh menentukan senarai terpaut di mana setiap nod boleh mengandungi nilai apa-apa jenis:
type Node struct { Value interface{} Next *Node }
Bermula dalam Go 1.18, alias terbina mana-mana telah diperkenalkan sebagai sinonim untuk antara muka{}. Ia memberikan nama yang lebih ringkas dan deskriptif untuk antara muka kosong.
var value any = 10
Dengan menggunakan antara muka kosong atau alias apa-apa, anda boleh mencipta struktur data Go yang mampu menyimpan nilai sebarang jenis, mencapai kefungsian yang serupa dengan penunjuk kosong dalam C.
Atas ialah kandungan terperinci Apakah Go's Equivalent to Void Pointers C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!