這篇“golang數(shù)組如何刪除元素”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“golang數(shù)組如何刪除元素”文章吧。
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),平邑企業(yè)網(wǎng)站建設(shè),平邑品牌網(wǎng)站建設(shè),網(wǎng)站定制,平邑網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,平邑網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
在go語言中,可以利用Slice(切片)的特性來實(shí)現(xiàn)數(shù)組元素的刪除操作。刪除方法:1、利用append()實(shí)現(xiàn)刪除,語法“append(list[:刪除索引], list[(刪除索引+1):]...)”;2、利用copy()實(shí)現(xiàn)刪除,語法“l(fā)ist[:copy(list, list[索引:])]”;3、利用len()實(shí)現(xiàn)刪除,語法“l(fā)ist[:len(list)-N]”。
在go語言中,可以利用Slice(切片)特性來實(shí)現(xiàn)數(shù)組元素的刪除操作。切片(slice)是對數(shù)組的一個連續(xù)片段的引用,所以切片是一個引用類型(因此更類似于 C/C++ 中的數(shù)組類型,或者 Python 中的 list 類型),這個片段可以是整個數(shù)組,也可以是由起始和終止索引標(biāo)識的一些項(xiàng)的子集,需要注意的是,終止索引標(biāo)識的項(xiàng)不包括在切片內(nèi)。
Go語言利用切片刪除數(shù)組元素
Go語言并沒有對刪除切片元素提供專用的語法或者接口,需要使用切片本身的特性來刪除元素,根據(jù)要刪除元素的位置有三種情況,分別是從開頭位置刪除、從中間位置刪除和從尾部刪除,其中刪除切片尾部的元素速度最快。
從開頭位置刪除
刪除開頭的元素可以直接移動數(shù)據(jù)指針:
a = []int{1, 2, 3}
a = a[1:] // 刪除開頭1個元素
a = a[N:] // 刪除開頭N個元素
也可以不移動數(shù)據(jù)指針,但是將后面的數(shù)據(jù)向開頭移動,可以用 append 原地完成(所謂原地完成是指在原有的切片數(shù)據(jù)對應(yīng)的內(nèi)存區(qū)間內(nèi)完成,不會導(dǎo)致內(nèi)存空間結(jié)構(gòu)的變化):
a = []int{1, 2, 3}
a = append(a[:0], a[1:]...) // 刪除開頭1個元素
a = append(a[:0], a[N:]...) // 刪除開頭N個元素
還可以用 copy() 函數(shù)來刪除開頭的元素:
a = []int{1, 2, 3}
a = a[:copy(a, a[1:])] // 刪除開頭1個元素
a = a[:copy(a, a[N:])] // 刪除開頭N個元素
從中間位置刪除
對于刪除中間的元素,需要對剩余的元素進(jìn)行一次整體挪動,同樣可以用 append 或 copy 原地完成:
a = []int{1, 2, 3, ...}
a = append(a[:i], a[i+1:]...) // 刪除中間1個元素
a = append(a[:i], a[i+N:]...) // 刪除中間N個元素
a = a[:i+copy(a[i:], a[i+1:])] // 刪除中間1個元素
a = a[:i+copy(a[i:], a[i+N:])] // 刪除中間N個元素
從尾部刪除
a = []int{1, 2, 3}
a = a[:len(a)-1] // 刪除尾部1個元素
a = a[:len(a)-N] // 刪除尾部N個元素
刪除開頭的元素和刪除尾部的元素都可以認(rèn)為是刪除中間元素操作的特殊情況,下面來看一個示例。
數(shù)組刪除示例
【示例】刪除切片指定位置的元素。
package main
import "fmt"
func main() {
seq := []string{"a", "b", "c", "d", "e"}
// 指定刪除位置
index := 2
// 查看刪除位置之前的元素和之后的元素
fmt.Println(seq[:index], seq[index+1:])
// 將刪除點(diǎn)前后的元素連接起來
seq = append(seq[:index], seq[index+1:]...)
fmt.Println(seq)
}
代碼輸出結(jié)果:
代碼說明如下:
第 1 行,聲明一個整型切片,保存含有從 a 到 e 的字符串。
第 4 行,為了演示和講解方便,使用 index 變量保存需要刪除的元素位置。
第 7 行,seq[:index] 表示的就是被刪除元素的前半部分,值為 [1 2],seq[index+1:] 表示的是被刪除元素的后半部分,值為 [4 5]。
第 10 行,使用 append() 函數(shù)將兩個切片連接起來。
第 12 行,輸出連接好的新切片,此時,索引為 2 的元素已經(jīng)被刪除。
代碼的刪除過程可以使用下圖來描述。
以上就是關(guān)于“golang數(shù)組如何刪除元素”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文題目:golang數(shù)組如何刪除元素
地址分享:http://jinyejixie.com/article2/gpscoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、、網(wǎng)站改版、品牌網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)