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
234 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!

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