Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Membuat Salinan Dalam Peta dalam Go?

Bagaimana untuk Membuat Salinan Dalam Peta dalam Go?

Patricia Arquette
Lepaskan: 2024-11-29 02:01:14
asal
209 orang telah melayarinya

How to Create Deep Copies of Maps in Go?

Membuat Salinan Dalam Peta dalam Go

Walaupun anda boleh membuat salinan peta secara manual, ia mungkin lebih mudah untuk menggunakan binaan -fungsi atau perpustakaan.

Terbina Dalam Fungsi

Malangnya, tiada fungsi terbina dalam khusus untuk membuat salinan peta sewenang-wenang dalam Go.

Perpustakaan dan Pakej

  • pengekodan/gob: Pustaka ini membolehkan anda mengekod dan menyahkod struktur data sewenang-wenangnya, termasuk peta. Dengan mengekodkan peta asal dan menyahkodnya kepada pembolehubah baharu, anda boleh membuat salinan dalam.
import (
    "bytes"
    "encoding/gob"
    "fmt"
)

func main() {
    ori := map[string]int{
        "key":  3,
        "clef": 5,
    }

    // Encode the original map
    var mod bytes.Buffer
    enc := gob.NewEncoder(&mod)
    err := enc.Encode(ori)
    if err != nil {
        fmt.Println("Failed to encode map:", err)
        return
    }

    // Decode the encoded map into a new variable (deep copy)
    var cpy map[string]int
    dec := gob.NewDecoder(&mod)
    err = dec.Decode(&cpy)
    if err != nil {
        fmt.Println("Failed to decode map:", err)
        return
    }

    // Modify the copied map to demonstrate they are independent
    cpy["key"] = 2
    fmt.Println("Original map:", ori)
    fmt.Println("Copied map:", cpy)
}
Salin selepas log masuk

Dengan menggunakan salah satu pendekatan ini, anda boleh membuat salinan peta dalam Go dengan mudah.

Atas ialah kandungan terperinci Bagaimana untuk Membuat Salinan Dalam Peta dalam Go?. 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