Rumah > Artikel > pembangunan bahagian belakang > Buat kepingan daripada kepingan lain tetapi daripada jenis yang berbeza
Adakah terdapat cara mudah dan boleh dibaca untuk membuat salinan kepingan tetapi menggunakan jenis lain?
Contohnya, saya menerima sekeping int32 (mySlice []int32
),但我需要它的副本,并且该副本应为 int64: copyOfMySlice []int64
.
func f(s []int32) int32 { var newSlice = make([]int64, len(s)) copy(newSlice, s) // how this can be done? // work with newSlice }
Satu-satunya cara ialah menterjemah dan menyalin setiap elemen satu demi satu. Anda boleh menulis fungsi salin menggunakan panggilan balik fungsi:
func CopySlice[S, T any](source []S, translate func(S) T) []T { ret := make([]T, 0, len(source)) for _, x := range source { ret = append(ret, translate(x)) } return ret }
dan gunakannya:
intSlice:=CopySlice[uint32,int]([]uint32{1,2,3},func(in uint32) int {return int(in)})
Atas ialah kandungan terperinci Buat kepingan daripada kepingan lain tetapi daripada jenis yang berbeza. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!