当前位置:网站首页>【愚公系列】2022年07月 Go教学课程 027-深拷贝和浅拷贝
【愚公系列】2022年07月 Go教学课程 027-深拷贝和浅拷贝
2022-08-04 05:55:00 【愚公搬代码】
一、深拷贝和浅拷贝
1.浅拷贝
浅拷贝是指对内存地址的复制,让目标对象指针和源对象指向同一片内存空间。go语言中赋值,函数传参, 函数返回值都是浅拷贝。
package main
import "fmt"
func main() {
a := []string{
"1", "2", "3"}
b := a
a[0] = "浅拷贝"
fmt.Println("a:", a)
fmt.Println("b:", b)
}

2.深拷贝
深拷贝是指拷贝对象的具体内容,二内存地址是自主分配的,拷贝结束之后俩个对象虽然存的值是一样的,但是内存地址不一样,俩个对象页互相不影响,互不干涉。
go语言中使用copy()函数来实现引用类型的深拷贝。
语法:
copy(dst[], src[]) //copy(目标切片, 源切片) 将源切片的值拷贝进目标切片。
package main
import "fmt"
func main() {
a := []string{
"1", "2", "3"}
// 初始化一个空数组
b := make([]string, len(a), cap(a))
copy(b, a)
a[0] = "深拷贝"
fmt.Println("a:", a)
fmt.Println("b:", b)
}

边栏推荐
猜你喜欢

matlab的2DCNN、1DCNN、BP、SVM故障诊断与结果可视化

Mac安装PHP开发环境

数据库技巧:整理SQLServer非常实用的脚本

关于我写的循环遍历

MMDeploy部署实战系列【第四章】:onnx,tensorrt模型推理

Error ER_NOT_SUPPORTED_AUTH_MODE Client does not support authentication protocol requested by serv

ThreadLocal内存泄漏问题讲解

海康VisionMaster与西门子Smart 200进行S7通信

子空间结构保持的多层极限学习机自编码器(ML-SELM-AE)

基于EEMD+GRU+MLR的时间序列预测
随机推荐
花了近70美元入手的学生版MATLAB体验到底如何?
53个全球免费学术资源数据库整理,查资料写论文必备【开学必备】
Software: Recommend a domestic and very easy-to-use efficiency software uTools to everyone
this关键字,构造函数
网络技巧:教你给路由器装上电池,断电照样可以上网!
Different lower_case_table_names settings for server (‘1‘) and data dictionary (‘0‘) 解决方案
IDEA 控制台 中文乱码问题(如果网上教程都无法解决你的问题的话)
Hardware Knowledge: Introduction to RTMP and RTSP Traditional Streaming Protocols
七夕专属程序员的浪漫
MySQL - Row size too large (> 8126). Changing some columns to TEXT or BLOB
SENet详解及Keras复现代码
元素的增删克隆以及利用增删来显示数据到页面上
U-Net详解:为什么它适合做医学图像分割?(基于tf-Kersa复现代码)
SegNet——论文笔记
软件:给大家推荐一款国产非常好用的效率软件uTools
反射与枚举
缓存穿透、击穿、雪崩
数组的一些方法
JVM 快速检测死锁
[漏洞问题] log4j漏洞 关于2.17.0升级到2.18.0 方案