Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menukar Slice kepada Array dalam Go?

Bagaimanakah Saya Boleh Menukar Slice kepada Array dalam Go?

Susan Sarandon
Susan Sarandonasal
2024-12-08 01:09:13570semak imbas

How Can I Convert a Slice to an Array in Go?

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!

Kenyataan:
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