Golang Copy()方法学习

前言

主要是涉及到深浅拷贝相关的,但是在看的一个资料过程中发现他有错…并且一系列,复制粘贴他的,也都错了。

错误文章指路

在这里插入图片描述
在这里插入图片描述

很显然,Copy是深拷贝啊!!!

Copy功能

copy的代码很少,如下:


// The copy built-in function copies elements from a source slice into a
// destination slice. (As a special case, it also will copy bytes from a
// string to a slice of bytes.) The source and destination may overlap. Copy
// returns the number of elements copied, which will be the minimum of
// len(src) and len(dst).
func copy(dst, src []Type) int

一共就一个dst,一个src,一共俩切片。

功能上,简单来说就是:实现切片的拷贝。需要注意的是,这里的拷贝是深拷贝,但1、目标切片需要提前初始化。2、只能直接拷一层。

官方文档在https://golangbyexample.com/copy-function-in-golang/

其中介绍如下:
If the length of src is greater than the length of dst, then the number of elements copied is the length of dst

If the length of dst is greater than length of src, then number of elements copied is length of src

Basically the number of elements copied is minimum of length of (src, dst).
即对应的这篇文章所说的情况1——https://www.jianshu.com/p/be07bee40b08

官方文档中的下一句:
Also to note that once the copy is done then any change in dst will not reflect in src and vice versa unless both src and dst refer to the same slice.

对应的即使此文中的情况2——https://www.jianshu.com/p/be07bee40b08

官方文档之后举例了,可以用copy自己拷贝到自己的情况,这个在网络教程中没怎么搜到。

package mainimport "fmt"func main() {src := []int{1, 2, 3, 4, 5}numberOfElementsCopied := copy(src, src[3:])fmt.Printf("Number Of Elements Copied: %d\n", numberOfElementsCopied)fmt.Printf("src: %v\n", src)
}

总结

这个没什么多的内容,但就是说,官方文档比来回cv的那些教程高大上一万倍。。。
官方文档:https://golangbyexample.com/copy-function-in-golang/

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

玩转地下管网三维建模:MagicPipe3D系统

地下管网是保障城市运行的基础设施和“生命线”。随着实景三维中国建设的推进,构建地下管网三维模型与地上融合的数字孪生场景,对于提升智慧城市管理至关重要!针对现有三维管线建模数据差异大、建模交互弱、模型效果差、缺乏语义信息等缺陷&a…

Bert Encoder和Transformer Encoder有什么不同

前言:本篇文章主要从代码实现角度研究 Bert Encoder和Transformer Encoder 有什么不同?应该可以帮助你: 深入了解Bert Encoder 的结构实现深入了解Transformer Encoder的结构实现 本篇文章不涉及对注意力机制实现的代码研究。 注:…

详解:npm升级到pnpm对比优化点!!

npm3之前 依赖树层级过深,导致依赖路径过长并且相同依赖模块会被重复安装,占用电脑磁盘空间 npm3之后 修改为扁平化处理 算法复杂存在多项目间依赖相同副本的情况导致没有明确被依赖的包也可以直接引用,管理复杂 pnpm node_modules改成非扁平化结构&a…

微软37页论文逆向工程Sora,得到了哪些结论?

一篇论文回顾 Sora 文生视频技术的背景、技术和应用。 追赶 Sora,成为了很多科技公司当下阶段的新目标。研究者们好奇的是:Sora 是如何被 OpenAI 发掘出来的?未来又有哪些演进和应用方向? Sora 的技术报告披露了一些技术细节&…

找专业人士编辑百度百科,避免审核问题

对于想在百度百科上创建词条或修改现有词条的网友,可能会有一些疑问,比如找第三方代不通过审核创建百度百科。那么,创建百度百科需要多少钱呢?让我们仔细看看。 百度百科创建服务一直存在。为了节省时间,很多人选择专业…

java八股文复习-----2024/03/03

1.接口和抽象类的区别 相似点: (1)接口和抽象类都不能被实例化 (2)实现接口或继承抽象类的普通子类都必须实现这些抽象方法 不同点: (1)抽象类可以包含普通方法和代码块&#x…

【JavaEE进阶】使用云服务器实现Linux环境搭建

文章目录 🍃前言🌲Linux背景知识🚩Linux 是什么?🚩Linux发行版🚩Linux的优势 🎄Linux环境搭建🚩环境的搭建方式🚩使用云服务器 🎋使用终端软件连接到Linux&am…

【Python】进阶学习:pandas--read_csv()用法详解

🚀【Python】进阶学习:pandas–read_csv()用法详解🚀 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教…

如何自学python

Python是一种高级编程语言,它具有简单易学、可读性强、可移植性好、功能丰富等优点,因此在许多领域都被广泛使用,如科学计算、数据分析、人工智能、Web开发、游戏开发等等。 Python具有丰富的标准库和第三方库,可以帮助程序员快速开发功能强大的应用程序。同时,Python也具…

如何做代币分析:以 LEO 币为例

作者: lesleyfootprint.network 编译:cicifootprint.network 数据源:LEO 代币仪表板 (仅包括以太坊数据) 在加密货币和数字资产领域,代币分析起着至关重要的作用。代币分析指的是深入研究与代币相关的数…

电能表检定装置

电能表检定装置产品概述 KDZD3030C三相便携式校验装置采用铝合金机箱,配合可拆卸铝合金挂表架,适用于1.0级及以下各种三相电能表的检验。 ​武汉凯迪正大电能表检定装置功能特点 1.仪器特点 1)采用表源一体结构,内置0.05级三相宽量程多功能…

网络编程:TCP机械臂,UDP文件传输

1.TCP机械臂测试 程序代码&#xff1a; 1 #include<myhead.h>2 #define SER_IP "192.168.126.112" //服务器IP3 #define SER_PORT 8888 //服务器端口号4 5 #define CLI_IP "192.168.126.121" //客户端IP6 #define CLI_PORT 9999 //…

LeetCode 刷题 [C++] 第763题.划分字母区间

题目描述 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段&#xff0c;同一字母最多出现在一个片段中。 注意&#xff0c;划分结果需要满足&#xff1a;将所有划分结果按顺序连接&#xff0c;得到的字符串仍然是 s 。 返回一个表示每个字符串片段的长度的列表。 …

看看技术大佬是如何把ls命令玩到飞起

关注公众号&#xff1a;“DevOps实战派”&#xff0c;获取更多DevOps和运维的精彩内容。 Linux中一个基本命令是ls&#xff0c;没有这个命令&#xff0c;我们会在浏览目录条目时会遇到困难。 ls命令用于列出文件和目录&#xff0c;默认上&#xff0c;它会列出当前目录的内容。…

Synchronized方法锁、对象锁、类锁区别

synchronized&#xff0c;这个东西我们一般称之为”同步锁“&#xff0c;他在修饰代码块的时候需要传入一个引用对象作为“锁”的对象。 在修饰方法的时候&#xff0c;默认是当前对象作为锁的对象在修饰类时&#xff0c;默认是当前类的Class对象作为所的对象 故存在着方法锁、…

【MySQL】事务管理 -- 详解

一、前言 CURD 不加控制&#xff0c;会有什么问题&#xff1f; CURD 满足什么属性&#xff0c;能解决上述问题&#xff1f; 买票的过程得是原子的。买票应该不能受互相的影响。买完票应该要永久有效。买前和买后都要是确定的状态。 什么是事务&#xff1f; 事务就是一组 DML…

网络编程作业day3

项目作业1&#xff1a;TCP机械臂测试 客户端操作代码&#xff1a; /*机械臂客户端控制代码*/ #include <myhead.h>#define SER_IP "192.168.125.176" //机械臂服务器IP地址 #define SER_PORT 8888 //机械臂服务器端口号 #define CLI_IP "…

Vue 项目重复点击菜单刷新当前页面

需求&#xff1a;“在当前页面点击当前页面对应的菜单时&#xff0c;也能刷新页面。” 由于 Vue 项目的路由机制是路由不变的情况下&#xff0c;对应的组件是不重新渲染的。所以重复点击菜单不会改变路由&#xff0c;然后页面就无法刷新了。 方案一 在vue项目中&#xff0c;…

深入了解 JavaScript 混淆加密和环境检测

JavaScript混淆加密是一种通过修改代码结构和命名约定来增加代码的复杂性&#xff0c;使其难以被理解和逆向工程的技术。在这篇文章中&#xff0c;我们将深入探讨JS混淆加密的一些逻辑&#xff0c;并介绍如何通过环境检测来提高代码的安全性。我们将使用案例代码演示这些概念。…

List集合按中文拼音排序,或按自己想要顺序的调整排序

1.你要按拼音排序&#xff08;字母同音依次比后面字母&#xff09; //集合按中文拼音排序Collections.sort(collect,new Comparator() {Overridepublic int compare(Object o1, Object o2) {return chineseCompare(o1,o2);}});//排序方法private static int chineseCompare(Obj…