Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk menggunakan refleksi jenis runtime untuk menukar jenis?

Bagaimana untuk menggunakan refleksi jenis runtime untuk menukar jenis?

王林
Lepaskan: 2024-02-06 10:51:12
ke hadapan
728 orang telah melayarinya

Bagaimana untuk menggunakan refleksi jenis runtime untuk menukar jenis?

Kandungan soalan

Saya cuba membina fungsi menggunakan generik yang menukar kepingan antara muka kepada kepingan jenis t .

Saya datang dengan perkara berikut:

func convertInterfaceArray[T any](input []any, res []T) {
    for _, item := range input {
        res = append(res, item.(reflect.TypeOf(res[0])))
    }
}
Salin selepas log masuk

Walau bagaimanapun, ini tidak akan disusun. Tetapi anda faham maksudnya. t boleh daripada sebarang jenis, saya mempunyai kepingan input jenis []apa-apa sahaja yang perlu ditukar kepada []t


Jawapan Betul


Tegaskan nilai jenis t. Tiada refleksi diperlukan.

for _, item := range input {
    res = append(res, item.(T))
}
Salin selepas log masuk

https://www.php.cn/link/f2a13eeae490ef805070086405e26087

Atas ialah kandungan terperinci Bagaimana untuk menggunakan refleksi jenis runtime untuk menukar jenis?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan