Rumah >pembangunan bahagian belakang >Golang >Apakah Go Equivalent of a C Void Pointer?

Apakah Go Equivalent of a C Void Pointer?

Linda Hamilton
Linda Hamiltonasal
2024-12-21 09:40:11230semak imbas

What is the Go Equivalent of a C Void Pointer?

Go Equivalent of a Void Pointer dalam C

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn