Menukar Slices kepada Arrays in Go
Semasa cuba membangunkan pembaca fail RPM, anda mungkin menghadapi keperluan untuk menetapkan kepingan kepada medan tatasusunan dalam struct. Ini boleh menjadi tugas yang sukar dalam Go, kerana tiada kaedah terbina dalam untuk penukaran langsung.
Untuk mengatasi had ini, pertimbangkan pilihan berikut:
Menggunakan salinan dengan a Slice Pretense:
Kaedah salin boleh ditipu untuk menyalin kepingan ke tatasusunan dengan mencipta kepingan sementara dengan tatasusunan asas yang sama sebagai tatasusunan sasaran.
varLead := Lead{} magicSlice := someSlice[0:4] // Create a temporary slice that references the array underlying the array field copy(varLead.Magic[:], magicSlice)
Tugasan Berasaskan Gelung Manual:
Sebagai alternatif, anda boleh menggelung ke atas kepingan dan menetapkan setiap elemen secara manual kepada elemen tatasusunan yang sepadan .
for index, b := range someSlice { varLead.Magic[index] = b }
Tersurat Penukaran:
Jika saiz tatasusunan ditetapkan, anda boleh menggunakan nilai literal untuk memulakan tatasusunan secara terus.
type Lead struct { Magic [4]byte // Other fields... } lead := Lead{ Magic: [4]byte{0x12, 0x34, 0x56, 0x78}, }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Slice kepada Array dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!