Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk memindahkan elemen dari satu kepingan ke yang lain

Bagaimana untuk memindahkan elemen dari satu kepingan ke yang lain

WBOY
Lepaskan: 2024-02-10 17:40:08
ke hadapan
1096 orang telah melayarinya

Bagaimana untuk memindahkan elemen dari satu kepingan ke yang lain

editor php Apple akan memperkenalkan anda cara mengalihkan elemen dari satu kepingan ke kepingan yang lain. Dalam pengaturcaraan, slice ialah struktur data yang biasa digunakan yang boleh menyimpan berbilang elemen. Kadangkala, kita perlu mengeluarkan elemen daripada satu kepingan dan mengalihkannya ke kepingan lain. Proses ini mungkin melibatkan pemadaman elemen, sisipan, operasi pengindeksan, dsb. Seterusnya, kami akan membincangkan secara terperinci cara melaksanakan operasi ini untuk membantu semua orang lebih memahami dan menggunakan pengetahuan berkaitan penghirisan.

Isi soalan

package main

import (
    "fmt"
)

func main() {
    arr0 := []int{
        1,2,3,4,5,
    }
    arr1 := []int{}

    fmt.println(arr0)
    fmt.println(arr1)
    fmt.println("transferring...")
    transfer(&arr0, &arr1)
    fmt.println(arr0)
    fmt.println(arr1)
}

func transfer(arr0 *[]int, arr1 *[]int) {
    tmp := make([]int, 0)
    for i:=0;i<len(*arr0);i++ {
        tmp = append(tmp, (*arr0)[i])
    }

    arr1 = &tmp
    s := make([]int, 0)
    arr0 = &s
}
Salin selepas log masuk

Untuk fungsi pemindahan, saya bercadang untuk memindahkan elemen slice arr0 ke slice arr1 dan slice arr0 kosong

Tetapi ia tidak berjaya

Ini hasil keluaran saya

[1 2 3 4 5]
[]
transferring...
[1 2 3 4 5]
[]
Salin selepas log masuk

Selepas pemindahan, saya memerlukan keputusan berikut. [] [1 2 3 4 5] Tetapi sebenarnya, arr0 dan arr1 dalam fungsi utama tetap sama!

Bolehkah seseorang memberitahu saya mengapa ini tidak berkesan?

Saya rasa dalam ingatan saya, sepatutnya begini

Selepas menjalankan fungsi pemindahan

Penyelesaian

Dua baris ini:

arr1 = &tmp
arr0 = &s
Salin selepas log masuk

Tukar pembolehubah tempatan dalam fungsi arr1arr0 。这些变量恰好是指针,但它们只是 main kepada salinan penuding input yang disediakan - ia bukan rujukan kepada penuding input.

Jika anda menukar arr1arr0 指针指向的内容,而不是指针本身,那么您将看到 main nilai yang disediakan berubah:

*arr1 = tmp
*arr0 = s
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk memindahkan elemen dari satu kepingan ke yang lain. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan