当前位置:网站首页>【愚公系列】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)
}
边栏推荐
猜你喜欢
什么是多态。
VMD combined with ISSA to optimize LSSVM power prediction
Base64编码原理
unicloud 腾讯云 上传文件 Have no access right to the storage uniapp
Network skills: teach you to install batteries on the router, you can still surf the Internet when the power is cut off!
mysql:列类型之float、double
Based on the EEMD + + MLR GRU helped time series prediction
反射与枚举
MATLAB版量化交易技术分析工具TA-Lib【不付费也可获取,不要被付费吓跑】
idea使用@Autowired注解爆红原因及解决方法
随机推荐
Detailed explanation of DenseNet and Keras reproduction code
如何用matlab做高精度计算?【第二辑】
在线公众号文章内容转音频文件实用小工具
MySQL外键(详解)
MATLAB版量化交易技术分析工具TA-Lib【不付费也可获取,不要被付费吓跑】
Triton部署mmdeploy导出的TensorRT模型失败篇
Nacos 原理
this关键字,构造函数
设置el-table自动向下滑动(不多解释,直接代码实现)
力扣每日一题-第47天-15. 三数之和
IDEA中创建编写JSP
2DCNN, 1DCNN, BP, SVM fault diagnosis and result visualization of matlab
53个全球免费学术资源数据库整理,查资料写论文必备【开学必备】
mysql基础(4)
Interpretation of EfficientNet: Composite scaling method of neural network (based on tf-Kersa reproduction code)
Error occurred while trying to proxy request项目突然起不来了
狗都能看懂的Self-Attention讲解
SystemVerilog-条件(三元)运算符
目标检测中的IoU、GIoU、DIoU与CIoU
Different lower_case_table_names settings for server (‘1‘) and data dictionary (‘0‘) 解决方案