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

Apakah Go Equivalent of a C Void Pointer?

Linda Hamilton
Lepaskan: 2024-12-21 09:40:11
asal
228 orang telah melayarinya

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{}
Salin selepas log masuk

Pembolehubah ini kemudian boleh memegang sebarang nilai dari sebarang jenis:

value = 42
value = "Hello, world!"
value = struct{ name string }{name: "John"}
Salin selepas log masuk

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
}
Salin selepas log masuk

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"}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan