Bagaimana untuk menggunakan refleksi jenis runtime untuk menukar jenis?

王林
Lepaskan: 2024-02-06 10:51:12
ke hadapan
649 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!

sumber:stackoverflow.com
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!