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

Bagaimana untuk memindahkan elemen dari satu kepingan ke yang lain

WBOY
WBOYke hadapan
2024-02-10 17:40:081049semak imbas

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
}

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]
[]

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

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

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam