Fungsi Salin Dijelaskan: Panduan Komprehensif
Fungsi salin dalam Go digunakan untuk menduplikasi elemen daripada kepingan sumber kepada kepingan destinasi. Ia memerlukan dua parameter: kepingan destinasi dan kepingan sumber, kedua-duanya mesti mempunyai jenis elemen yang sama.
Cara copy() Berfungsi
copy() copy elemen daripada hirisan sumber ke hirisan destinasi, tetapi hanya sehingga panjang minimum dua keping. Jika kepingan sumber lebih pendek daripada kepingan destinasi, hanya elemen dalam kepingan sumber akan disalin. Sebaliknya, jika kepingan destinasi lebih pendek daripada kepingan sumber, hanya elemen len(dst) pertama disalin.
Aspek penting copy() ialah ia boleh mengendalikan kepingan bertindih. Iaitu, ia boleh menyalin elemen daripada kepingan sumber ke kepingan destinasi yang berkongsi tatasusunan asas yang sama. Ini boleh berguna untuk operasi seperti mengalih elemen atau menyusun semula kepingan.
Contoh Kes Guna
Di bawah ialah beberapa contoh cara copy() boleh digunakan:
Membuat salinan kepingan:
<code class="go">src := []int{10, 11, 12, 13, 14} dst := make([]int, len(src)) n := copy(dst, src) fmt.Println("n =", n, "src =", src, "dst =", dst)</code>
Output:
n = 5 src = [10 11 12 13 14] dst = [10 11 12 13 14]
Menyalin sebahagian daripada kepingan:
<code class="go">src := []int{10, 11, 12, 13, 14} dst := make([]int, 2) n := copy(dst, src[1:]) fmt.Println("n =", n, "src =", src, "dst =", dst)</code>
Output:
n = 2 src = [10 11 12 13 14] dst = [11 12]
Hirisan bertindih:
<code class="go">src := []int{10, 11, 12, 13, 14} dst := src[1:] n := copy(dst, src) fmt.Println("n =", n, "src =", src, "dst =", dst)</code>
Output:
n = 4 src = [10 11 12 13 14] dst = [11 12 13 14]
Kes Khas: Menyalin daripada Rentetan kepada Kepingan Bait
copy() juga boleh digunakan untuk menyalin bait daripada rentetan kepada kepingan bait. Ini berguna untuk menukar rentetan kepada tatasusunan bait atau untuk bekerja dengan data bait.
Contohnya:
<code class="go">str := "Hello, World!" data := make([]byte, 5) n := copy(data, str) fmt.Println("n =", n, "str =", str, "data =", data)</code>
Output:
n = 5 str = Hello, World! data = [72 101 108 108 111]
Kesimpulan
Fungsi salin dalam Go ialah alat serba boleh untuk bekerja dengan kepingan. Ia menyediakan cara ringkas dan cekap untuk menduplikasi hirisan, menyalin bahagian hirisan, dan juga mengendalikan hirisan bertindih. Memahami cara copy() berfungsi adalah penting untuk manipulasi kepingan yang berkesan dalam Go.
Atas ialah kandungan terperinci Bagaimanakah Fungsi `copy()` Go Berfungsi Dengan Hirisan Bertindih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!