Dalam Go, konsep void pointer dalam C digantikan dengan antara muka kosong, dilambangkan sebagai antara muka{}. Antara muka ini mewakili set semua jenis (bukan antara muka). Ia membolehkan anda menyimpan sebarang jenis nilai tanpa perlu menentukan jenis tertentu.
Untuk menggunakan antara muka kosong, hanya isytiharkan pembolehubah jenis antara muka{}:
var value interface{}
Pembolehubah ini kemudian boleh memegang sebarang nilai dari sebarang jenis:
value = 42 value = "Hello, world!" value = struct{ name string }{name: "John"}
Anda boleh mengakses nilai yang disimpan dalam antara muka kosong menggunakan jenis penegasan:
if x, ok := value.(int); ok { // x is an int } else if y, ok := value.(string); ok { // y is a string }
Kemas kini (2023-09-27):
Bermula dalam Go 1.18, sebarang jenis diperkenalkan sebagai alias untuk antara muka{}. Ia menyediakan fungsi yang sama seperti antara muka kosong, tetapi ia lebih ringkas dan lebih mudah dibaca.
var value any value = 42 value = "Hello, world!" value = struct{ name string }{name: "John"}
Atas ialah kandungan terperinci Apakah Go Equivalent of a C Void Pointer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!