Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menentukan Jenis Dasar Nilai `antara muka{}` Go?

Bagaimanakah Saya Boleh Menentukan Jenis Dasar Nilai `antara muka{}` Go?

Patricia Arquette
Lepaskan: 2024-12-20 19:36:12
asal
313 orang telah melayarinya

How Can I Determine the Underlying Type of a Go `interface{}` Value?

Mendapatkan Jenis Nilai Antara Muka "Sebenar" dalam Go

Jenis antara muka Go{} ialah cara serba boleh untuk mengendalikan nilai apa-apa jenis . Walau bagaimanapun, menentukan jenis sebenar nilai antara muka{} boleh menjadi rumit. Berikut ialah beberapa pendekatan:

Jenis Penegasan:

Jenis penegasan, seperti yang ditunjukkan dalam contoh yang disediakan, adalah kaedah yang paling mudah. Menggunakan . (titik), anda boleh cuba menghantar nilai antara muka kepada jenis tertentu. Contohnya, jika tmp, ok := w.(int) cuba menghantar w kepada int, dan jika berjaya, simpan nilai dalam tmp sambil menetapkan ok kepada benar.

Suis Jenis:

Suis jenis menyediakan cara yang lebih komprehensif untuk mengendalikan berbilang jenis. Sama seperti pernyataan kes suis, suis jenis boleh menyemak jenis nilai antara muka{} dan melaksanakan laluan kod yang berbeza berdasarkan jenis. Sebagai contoh, coretan kod berikut menguji jika myInterface ialah int, float64 atau rentetan:

switch v := myInterface.(type) {
case int:
    fmt.Printf("Integer: %v", v)
case float64:
    fmt.Printf("Float64: %v", v)
case string:
    fmt.Printf("String: %v", v)
default:
    fmt.Printf("Unknown type")
}
Salin selepas log masuk

Mendapatkan Perwakilan Rentetan Jenis:

Untuk mendapatkan perwakilan rentetan jenis, gunakan pakej mencerminkan. Panggil reflect.TypeOf(value).Name() pada nilai antara muka untuk mendapatkan nama jenisnya sebagai rentetan.

typeName := reflect.TypeOf(w).Name()
Salin selepas log masuk

Menukar Nilai Menggunakan Perwakilan Jenis:

Pada masa ini, tiada cara langsung untuk menukar nilai menggunakan perwakilan jenis rentetannya. Walau bagaimanapun, perpustakaan luaran, seperti github.com/bluele/gcache, boleh membantu dengan tugas ini dengan menyediakan fungsi untuk menukar rentetan kepada jenis.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Jenis Dasar Nilai `antara muka{}` Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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