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.pswp.cn/news/718835.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/718835.shtml
英文地址,請注明出處:http://en.pswp.cn/news/718835.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

chatgp4 教我學搭建網站1-課程目錄

Prerequisite 讓我們為學習如何建立網站規劃一個先修課程。我們將從0.1開始,不直接進入網站建設本身: 0.1 網絡技術基礎:了解互聯網如何工作,包括域名系統(DNS)、HTTP/HTTPS協議等。 0.2 HTML基礎&#x…

OAuth2:保障現代應用程序安全的關鍵協議

OAuth2:保障現代應用程序安全的關鍵協議 摘要:本文將為您詳細介紹OAuth2,這一保障現代應用程序安全的關鍵協議。我們將探討OAuth2的概念、工作流程、應用場景以及優勢,幫助您更好地理解并應用這一強大的安全認證機制。 一、引言…

玩轉地下管網三維建模: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…

深入理解TCP/IP協議:互聯網通信的核心

深入理解TCP/IP協議:互聯網通信的核心 在數字化時代,TCP/IP協議是支撐全球互聯網通信的基石。它不僅負責數據的傳輸和路由,還確保了信息傳遞的準確性和完整性。本文將深入探討TCP/IP協議的工作原理、結構以及它在網絡編程中的應用。 TCP/IP…

【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 "…