首页 > 其他分享 >go的深拷贝跟浅拷贝

go的深拷贝跟浅拷贝

时间:2024-06-12 12:54:36浏览次数:17  
标签:Golang fmt golang Println go 100 拷贝

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

原创 吃个大西瓜 Coding Big Tree 2024-06-09 08:01 北京 听全文

图片

浅拷贝和深拷贝

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

浅拷贝示例

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面试刷题资料

golang60 golang · 目录 上一篇面试官:Golang语言中的panic和recover有什么作用?下一篇Golang:bytes 格式和解析数字字节值(10K、2M、3G等) 阅读 272 ​ 喜欢此内容的人还喜欢   面试官:Golang语言中的panic和recover有什么作用?     我看过的号 Coding Big Tree   不看的原因   Go 朝着错误的方向发展     鸟窝聊技术   不看的原因   Go即时通信:Goim 源码     蔡蔡蔡云原生Go   不看的原因   写留言       Coding Big Tree            

人划线

 

标签:Golang,fmt,golang,Println,go,100,拷贝
From: https://www.cnblogs.com/cheyunhua/p/18243724

相关文章

  • 浅拷贝与深拷贝全面解析及实战
    在JavaScript学习中,拷贝是很重要的一个知识点。拷贝主要分为浅拷贝(ShallowCopy)和深拷贝(DeepCopy)。本文将阐述两者的概念,还将通过手写示例深入探讨如何实现这两种拷贝方式,以及它们在实际应用中的考量。浅拷贝:表面级复制浅拷贝只复制对象的第一层属性,对于嵌套对象或数组,仅复......
  • mongodb的安装使用、mongodb与redis,memcache,mysql的区别优缺点 以及 好用的MongoDB
    一、mongodb的安装使用、与redis,memcache,mysql的区别优缺点    MongoDB是一个介于关系数据库和非关系数据库之间的基于分布式文件存储的数据库。是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数......
  • 如何基于R包做GO分析?实现秒出图
    GO分析 基因本体论(GeneOntology,GO)是一个用于描述基因和基因产品属性的标准术语体系。它提供了一个有组织的方式来表示基因在生物体内的各种角色。基因本体论通常从三个层面对基因进行描述:细胞成分(CellularComponent,CC)、生物学过程(BiologicalProcess,BP)和分子功能(Molecular......
  • Zgo - Read Files
     packagemainimport("bufio""fmt""io""os")funclineByLine(filestring)error{f,err:=os.Open(file)iferr!=nil{returnerr}deferf.Close()r:=bufio.......
  • 【解决了一个小问题】因为镜像证书的问题,golang http client出现错误 `tls: failed to
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯一个服务使用Docker打包镜像,部署到k8s后出现如下的错误信息:tls:failedtoverifycertificate:x509:certificatesignedbyunknownauthority出错的位置是......
  • Dragon Boat Festival
    AstheDragonBoatFestivalapproaches,everyfamilywillpreparetomakezongzi,whichisthemainwaytocelebrateDragonBoatFestival.WhatisinterestingisthatthetasteofZongziinnorthernandsouthernChinaisdifferent.Mostpeopleinthenorthe......
  • A Legacy of Loyalty: Remembering Qu Yuan at the Dragon Boat Festival
    AstheDragonBoatFestivaldrawsnear,theairisfilledwithauniqueblendofnostalgia,tradition,andanticipation.Thisfestival,withaprofoundhistoricalbackdrop,resonatesdeeplywithme,especiallythestoryofQuYuan'stragicplungeint......
  • star 最多的 Go 语言本地化库|GitHub 2.8K
    ......
  • Go语言什么时候该使用指针 与 指针使用分析
    Go语言什么时候该使用指针与指针使用分析原创 疯子 Go语言圈 2024-06-1208:31 广东Go语言圈Go语言开发者的学习好助手,分享Go语言知识,技术技巧,学习与交流Go语言开发经验,互动才有助于技术的提升,每天5分钟,助你GO语言技术快乐成长161篇原创内容公众号......
  • golang json字符串转结构体
    腐汝 博客园首页新随笔联系订阅管理随笔-168  文章-0  评论-2  阅读- 89497golangjson字符串转结构体 1、不知道结构体类型的情况下funcJsonStringToMap(jsonStrstring)(map[string]interface{},error){//未知值类型......