> 백엔드 개발 > Golang > Go에서 지도의 전체 복사본을 만드는 방법은 무엇입니까?

Go에서 지도의 전체 복사본을 만드는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-29 02:01:14
원래의
209명이 탐색했습니다.

How to Create Deep Copies of Maps in Go?

Go에서 지도의 전체 복사본 만들기

지도의 복사본을 수동으로 만들 수도 있지만 내장된 지도를 활용하는 것이 더 편리할 수 있습니다. -함수 또는 라이브러리.

내장 기능

안타깝게도 Go에는 임의의 지도를 복사하기 위한 내장 기능이 없습니다.

라이브러리 및 패키지

  • encoding/gob: 이 라이브러리를 사용하면 인코딩하고 지도를 포함한 임의의 데이터 구조를 디코딩합니다. 원본 지도를 인코딩하고 새 변수로 디코딩하면 전체 복사본을 만들 수 있습니다.
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)
}
로그인 후 복사

이러한 접근 방식 중 하나를 활용하면 Go에서 지도의 전체 복사본을 편리하게 만들 수 있습니다.

위 내용은 Go에서 지도의 전체 복사본을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿