Walaupun ada dokumentasi, pengendalian fungsi salin mungkin memerlukan penjelasan lanjut.
Fungsi salin memindahkan elemen daripada kepingan sumber kepada kepingan destinasi jenis elemen yang sama. Ambil perhatian bahawa salinan boleh menyalin bait daripada rentetan kepada sekeping bait.
Tandatangan fungsi salinan ialah:
<code class="go">func copy(dst, src []Type) int</code>
Di mana:
salinan pada asasnya menyalin elemen dari src ke dst sehingga minimum elemen len(src) dan len(dst). Ini bermakna ia memastikan bahawa kepingan destinasi boleh menampung semua elemen daripada kepingan sumber tanpa melebihi kapasitinya.
Pertimbangkan kod berikut:
<code class="go">package main import "fmt" func main() { src := []int{10, 11, 12, 13, 14} dst := []int{0, 1, 2, 3, 4} 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]
Dalam contoh ini, keseluruhan kepingan src disalin ke dalam kepingan dst, menghasilkan kedua-dua kepingan mempunyai elemen yang sama.
Fungsi salin juga boleh digunakan dengan kepingan bertindih. Contohnya:
<code class="go">copy(src, src[1:]) fmt.Println("n =", n, "src =", src)</code>
Output:
n = 4 src = [1 2 3 4 4]
Dalam senario ini, elemen pertama src dikecualikan daripada menyalin, dan empat elemen yang selebihnya dialihkan satu indeks ke kiri dengan berkesan , menimpa elemen pertama dengan elemen terakhir.
Seperti yang dinyatakan sebelum ini, salinan membenarkan menyalin bait daripada rentetan kepada sekeping bait. Berikut ialah contoh:
<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]
Fungsi salin menyalin lima bait pertama perwakilan UTF-8 rentetan ke dalam kepingan data.
Fungsi salin menyediakan cara yang cekap untuk memindahkan elemen antara kepingan, walaupun apabila ia berkongsi memori bertindih. Fleksibilitinya menjadikannya alat yang berharga dalam pengaturcaraan Go.
Atas ialah kandungan terperinci Bagaimanakah fungsi `copy()` berfungsi dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!