Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah fungsi salin Go mengendalikan hirisan bertindih?
Memahami Fungsi Salin dalam Go
Fungsi salin dalam Go, seperti yang didokumenkan, ialah fungsi terbina dalam yang memudahkan penyalinan elemen daripada kepingan sumber kepada kepingan destinasi. Ia beroperasi pada kepingan jenis elemen yang sama dan boleh mengendalikan kes di mana sumber dan destinasi bertindih.
Cara Salin Berfungsi
Fungsi salin mengambil dua parameter: destinasi slice dst dan hirisan sumber src. Ia mengembalikan integer yang mewakili bilangan elemen yang berjaya disalin. Bilangan elemen yang disalin ditentukan oleh panjang minimum hirisan sumber dan destinasi.
Contoh
Mari kita ilustrasikan kefungsian salinan dengan beberapa contoh:
<code class="go">src := []int{10, 11, 12, 13, 14} dst := []int{0, 1, 2, 3, 4} // Copy all elements from src to dst. n := copy(dst, src) fmt.Println(n, src, dst) // Output: 5 [10 11 12 13 14] [10 11 12 13 14]</code>
Dalam contoh ini, semua lima elemen daripada src akan disalin ke dalam dst, meninggalkan kedua-dua kepingan dengan elemen yang sama.
<code class="go">dst = []int{0, 1} // Copy only as many elements as the shorter of src and dst. n = copy(dst, src) fmt.Println(n, src, dst) // Output: 2 [10 11 12 13 14] [10 11]</code>
Dalam kes ini, dst hanya mempunyai dua elemen, jadi hanya dua elemen disalin, menghasilkan dst yang mengandungi dua elemen pertama src.
<code class="go">src = []int{10, 11} dst = []int{0, 1, 2, 3, 4} // Copy only as many elements as the shorter of src and dst. n = copy(dst, src) fmt.Println(n, src, dst) // Output: 2 [10 11] [10 11 2 3 4]</code>
Begitu juga, apabila src mempunyai kurang elemen daripada dst, hanya elemen yang terdapat dalam src disalin, dan elemen selebihnya dalam dst kekal tidak berubah.
特殊案例:拷贝字符串到字节片
值得注意的拷贝字符串到字节片
<code class="go">str := "Hello, World!" data := make([]byte, 5) // Copy 5 bytes from the UTF-8 representation of str into data. n = copy(data, str) fmt.Println(n, str, data) // Output: 5 Hello, World! [72 101 108 108 111]</code>
值得注意的是,值得注意的是,就一一们行()们中的字节拷贝到字节片([]bait)中:
Bertindih
Salin boleh mengendalikan situasi di mana hirisan sumber dan destinasi bertindih. Dalam kes sedemikian, elemen dalam bahagian bertindih akan disalin, meninggalkan susunan elemen dalam kepingan destinasi tidak berubah.
Kesimpulan
Fungsi salin dalam Go menyediakan cara yang mudah untuk menyalin elemen dari satu kepingan ke kepingan yang lain. Ia membolehkan fleksibiliti dalam mengendalikan kes dengan panjang kepingan dan pertindihan yang berbeza, menjadikannya alat yang berguna untuk memanipulasi data dalam kepingan.Atas ialah kandungan terperinci Bagaimanakah fungsi salin Go mengendalikan hirisan bertindih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!