Golang:deepcopy深拷贝工具库

Golang:deepcopy深拷贝工具库

图片

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

 

回复:【golang加群】加入golang开发者交流群

golang · 目录
上一篇Golang:Gomail一个简单高效的电子邮件发送包下一篇Golang:cast安全且易用的类型转换工具
阅读原文
阅读 569
 
 
 
 
 
 
 
 
 
 
posted @   技术颜良  阅读(541)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
历史上的今天:
2023-05-10 go的IO读取与写入
2023-05-10 go提醒操作
2023-05-10 使用blackbox_exporter监控接口的返回内容
2023-05-10 Prometheus 部署 Black Exporter 黑盒监控 DNS-TCP-ICMP
2023-05-10 iptables之forward转发
2022-05-10 TCP就没什么缺陷吗
2022-05-10 Nginx配置域名反向代理MQTT 配置mqtt /ws /wss访问域名连接。
点击右上角即可分享
微信分享提示