go的深拷贝跟浅拷贝

news/2024/10/4 7:30:35

Golang面试官:聊一聊浅拷贝和深拷贝

图片

浅拷贝和深拷贝

  • 浅拷贝后的对象和源对象是同一个对象,值被修改,原值的数据也会被修改
  • 深拷贝后的对象,是一个全新的对象,和源对象没有关系,修改值不会相互影响

浅拷贝示例

package main

import (
    "fmt"
)

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

    // 浅拷贝
    b := a

    // 修改 b 的第一个元素
    b[0] = 100

    // 发现 a 的第一个元素也被修改了
    fmt.Println(a) // [100 2 3 4 5]
    fmt.Println(b) // [100 2 3 4 5]
}

深拷贝示例,使用内建函数copy实现

package main

import (
    "fmt"
)

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

    // 深拷贝
    b := make([]int, len(a))

    copy(b, a)

    // 修改 b 的第一个元素
    b[0] = 100

    // 可以看到 a 的值并没有被修改
    fmt.Println(a) // [1 2 3 4 5]
    fmt.Println(b) // [100 2 3 4 5]
}

公众号回复:

golang加群】加入golang开发者交流群

golang资料】获取golang面试刷题资料

golang · 目录
上一篇面试官:Golang语言中的panic和recover有什么作用?下一篇Golang:bytes 格式和解析数字字节值(10K、2M、3G等)
阅读 272
 
写留言
 
 
 
 
 
 
 
 
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/44472.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

LLM应用实战:当图谱问答(KBQA)集成大模型(三)

本文主要是针对KBQA方案基于LLM实现存在的问题进行优化,主要涉及到响应时间提升优化以及多轮对话效果优化,提供了具体的优化方案以及相应的prompt。1. 背景 最近比较忙(也有点茫),本qiang~想切入多模态大模型领域,所以一直在潜心研读中... 本次的更新内容主要是响应图谱问答…

Conntrack 监控,别等故障了再回来加监控

这是专栏第 8 篇,介绍一下 node-exporter 的 conntrack 插件。这个插件大家平时关注可能较少,但是在一些场景下,比如防火墙、NAT 网关等,需要监控 conntrack 表的使用情况。我就遇到过一次生产事故,就是因为 conntract 表满了,导致新连接无法建立,所以这个插件还是很有用…

最全面的86五笔字根表

摘自:https://www.cnblogs.com/yanan7890/p/8744535.html86版五笔字 G 11 王旁青头戋(兼)五一F 12 土士二干十寸雨D 13 大犬三(羊)古石厂S 14 木丁西A 15 工戈草头右框七H 21 目具上止卜虎皮J 22 日早两竖与虫依K 23 口与川,字根稀?L 24 田甲方框四车力M 25 山由贝,下框…

杂题选讲 #1:二分图边着色

Vizing 定理 定义 考虑如下的问题:对一个无向图的边进行着色,要求相邻的边染不同种颜色。问 需要的最少的颜色数是多少。 解决上述问题需要借助 Vizing 定理(又称维金定理)。 在开始之前,我们先进行一些符号的规定。\(\Delta(G)\):无向图 \(G=(V,E)\) 的最大度数,即 \(\…

【日记】分墨器大道至简,还挺好用(342 字)

正文今天没见到任何客户,在柜台坐着玩手机玩了一天。倒是看了许多书,虽说也没看多少就是了。此外给植物换了水,同步了下文章,整理了一下数据什么的。因为钢笔都没墨水了,去拿新墨水时忽然看见商家送的分墨套装,想着旧墨水瓶里还剩下挺多吸不上来,挺浪费。这墨水毕竟不便…

Ton 区块链的官方 类ERC20-Token 智能合约代码-Transfer部分解析

作者:林冠宏 / 指尖下的幽灵。转载者,请: 务必标明出处。 掘金:https://juejin.im/user/1785262612681997 GitHub : https://github.com/af913337456/ 出版的书籍:《1.0-区块链DApp开发实战》 《2.0-区块链DApp开发:基于公链》Ton 区块链的官方 类ERC20-Token 智能合约代…

备忘:HP Gen8服务器创建Raid

HP Gen8服务器创建Raid(there are no physical disks attached)原文地址:https://blog.51cto.com/tianhunyongheng/1606948 HP最新的X86服务器是Gen8系列,这个系列使用了ACU工具来创建Raid,这是图形化界面,可以说是更友好了。 本来通常情况下如果是买了一台新的服务器…

流畅的python--第十一章 符合 Python 风格的对象

一个库或框架是否符合 Python 风格,要看它能不能让 Python 程序 员以一种简单而自然的方式执行任务。—— Martijn Faassen Python 和 JavaScript 框架开发者 得益于 Python 数据模型,自定义类型的行为可以像内置类型那样自 然。实现如此自然的行为,靠的不是继承,而是鸭子类…