Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menukar Go Slice kepada Array Tanpa Menyalin?
Apabila bekerja dengan kepingan dan tatasusunan dalam Go, anda mungkin perlu menukar antara kedua-dua jenis. Senario biasa ialah menukar kepingan kepada tatasusunan tanpa membuat salinan. Ini boleh dicapai menggunakan beberapa kaedah yang berbeza.
Fungsi salin membolehkan anda menyalin elemen dari satu kepingan ke kepingan yang lain. Walau bagaimanapun, ia hanya boleh menyalin antara kepingan, bukan antara kepingan dan tatasusunan. Untuk mengatasi masalah ini, anda boleh menggunakan helah:
varLead := Lead{} copy(varLead.Magic[:], someSlice[0:4])
Dalam kod ini, varLead.Magic ialah tatasusunan saiz 4, manakala someSlice ialah kepingan. Dengan menggunakan sintaks [:] pada varLead.Magic, kami mencipta pengepala hirisan yang menghala ke tatasusunan asas. Fungsi salin kemudian menyalin elemen daripada someSlice[0:4] ke dalam pengepala keping ini, menukarkannya kepada tatasusunan dengan berkesan tanpa membuat salinan.
Pilihan lain ialah dengan gunakan gelung for untuk menyalin elemen secara manual daripada kepingan ke tatasusunan:
for index, b := range someSlice { varLead.Magic[index] = b }
Kod ini berulang ke atas elemen dalam someSlice dan memperuntukkan setiap elemen kepada indeks yang sepadan dalam varLead.Magic. Ia adalah cara yang mudah dan mudah untuk menukar hirisan kepada tatasusunan tanpa membuat salinan.
Akhir sekali, anda juga boleh menggunakan tersurat untuk mencipta tatasusunan daripada sekeping:
varLead.Magic = [4]byte{someSlice[0], someSlice[1], someSlice[2], someSlice[3]}
Kod ini secara eksplisit mencipta tatasusunan saiz 4 dan memperuntukkan empat elemen pertama someSlice kepadanya. Ia adalah cara yang paling padat dan boleh dibaca untuk menukar hirisan kepada tatasusunan, tetapi ia boleh menjadi menyusahkan jika tatasusunan mempunyai sejumlah besar elemen.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Go Slice kepada Array Tanpa Menyalin?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!