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

Bagaimana untuk menggunakan refleksi jenis runtime untuk menukar jenis?

王林
王林ke hadapan
2024-02-06 10:51:12641semak imbas

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])))
    }
}

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))
}

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:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam