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