Bagaimanakah Fungsi `copy()` Go Berfungsi Dengan Hirisan Bertindih?

Barbara Streisand
Lepaskan: 2024-11-01 02:19:28
asal
590 orang telah melayarinya

How Does Go's `copy()` Function Work With Overlapping Slices?

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>
    Salin selepas log masuk

    Output:

    n = 5 src = [10 11 12 13 14] dst = [10 11 12 13 14]
    Salin selepas log masuk
  • 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>
    Salin selepas log masuk

    Output:

    n = 2 src = [10 11 12 13 14] dst = [11 12]
    Salin selepas log masuk
  • 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>
    Salin selepas log masuk

    Output:

    n = 4 src = [10 11 12 13 14] dst = [11 12 13 14]
    Salin selepas log masuk

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>
Salin selepas log masuk

Output:

n = 5 str = Hello, World! data = [72 101 108 108 111]
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!