在go語言中,可以利用Slice(切片)的特性來實現陣列元素的刪除操作。刪除方法:1、利用append()實作刪除,語法「append(list[:刪除索引], list[(刪除索引1):]...)」;2、利用copy()實作刪除,語法「list [:copy(list, list[索引:])]」;3、利用len()實作刪除,語法「list[:len(list)-N]」。
本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。
在go語言中,可以利用Slice(切片)特性來實現陣列元素的刪除運算。切片(slice)是對數組的一個連續片段的引用,所以切片是一個引用類型(因此更類似於C/C 中的數組類型,或者 Python 中的list 類型),這個片段可以是整個數組,也可以是由起始和終止索引標識的一些項目的子集,需要注意的是,終止索引標識的項目不包括在切片內。
Go語言利用切片刪除數組元素
#Go語言並沒有對刪除切片元素提供專用的語法或接口,需要使用切片本身的特性來刪除元素,根據要刪除元素的位置有三種情況,分別是從開頭位置刪除、從中間位置刪除和從尾部刪除,其中刪除切片尾部的元素速度最快。 【相關推薦:Go影片教學、程式設計教學】
#從開頭位置刪除
##刪除開頭的元素可以直接移動資料指針:a = []int{1, 2, 3} a = a[1:] // 删除开头1个元素 a = a[N:] // 删除开头N个元素
a = []int{1, 2, 3} a = append(a[:0], a[1:]...) // 删除开头1个元素 a = append(a[:0], a[N:]...) // 删除开头N个元素
a = []int{1, 2, 3} a = a[:copy(a, a[1:])] // 删除开头1个元素 a = a[:copy(a, a[N:])] // 删除开头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个元素
陣列刪除範例
【範例】刪除切片指定位置的元素。package main import "fmt" func main() { seq := []string{"a", "b", "c", "d", "e"} // 指定删除位置 index := 2 // 查看删除位置之前的元素和之后的元素 fmt.Println(seq[:index], seq[index+1:]) // 将删除点前后的元素连接起来 seq = append(seq[:index], seq[index+1:]...) fmt.Println(seq) }
程式設計影片! !
以上是golang數組怎麼刪除元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!