您当前的位置: 首页 >  golang

彭世瑜

暂无认证

  • 2浏览

    0关注

    2791博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Golang:deepcopy深拷贝工具库

彭世瑜 发布时间:2022-09-16 09:50:25 ,浏览量:2

Deep copy things

译文:事物的深度复制

文档

  • github https://github.com/mohae/deepcopy
  • pkg.go https://pkg.go.dev/github.com/mohae/deepcopy

安装

go get github.com/mohae/deepcopy

示例

1、深拷贝切片

package main

import (
    "fmt"

    "github.com/mohae/deepcopy"
)

func main() {
    var s1 = []int{1, 2, 3, 4, 5}

    // 深拷贝切片
    cpy := deepcopy.Copy(s1)
    s2 := cpy.([]int)

    // 修改s2的值
    s2[0] = 6

    fmt.Printf("s1: %v\n", s1)
    // s1: [1 2 3 4 5]

    fmt.Printf("s2: %v\n", s2)
    // s2: [6 2 3 4 5]

}

2、深拷贝map

package main

import (
    "fmt"

    "github.com/mohae/deepcopy"
)

func main() {
    var m1 = make(map[string]int)
    m1["age"] = 10

    // 深拷贝map
    cpy := deepcopy.Copy(m1)
    m2 := cpy.(map[string]int)

    // 修改m2的值
    m2["age"] = 12

    fmt.Printf("m1: %v\n", m1)
    // m1: map[age:10]

    fmt.Printf("m2: %v\n", m2)
    // m2: map[age:12]
}

参考 「Go工具箱」推荐一个非常简单的深拷贝工具:deepcopy

关注
打赏
1665367115
查看更多评论
立即登录/注册

微信扫码登录

0.1051s