首頁 >後端開發 >Golang >golang數組怎麼刪除元素

golang數組怎麼刪除元素

青灯夜游
青灯夜游原創
2022-12-08 18:10:1412513瀏覽

在go語言中,可以利用Slice(切片)的特性來實現陣列元素的刪除操作。刪除方法:1、利用append()實作刪除,語法「append(list[:刪除索引], list[(刪除索引1):]...)」;2、利用copy()實作刪除,語法「list [:copy(list, list[索引:])]」;3、利用len()實作刪除,語法「list[:len(list)-N]」。

golang數組怎麼刪除元素

本教學操作環境: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个元素

也可以不移動資料指針,但是將後面的資料向開頭移動,可以用append 原地完成(所謂原地完成是指在原有的切片資料對應的記憶體區間內完成,不會導致記憶體空間結構的變化):

a = []int{1, 2, 3}
a = append(a[:0], a[1:]...) // 删除开头1个元素
a = append(a[:0], a[N:]...) // 删除开头N个元素

也可以用copy() 函數來刪除開頭的元素:

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數組怎麼刪除元素

程式碼說明如下:

  • 第1 行,宣告一個整數型切片,保存含有從a 到e 的字串。

  • 第 4 行,為了示範和解說方便,使用 index 變數儲存需要刪除的元素位置。

  • 第7 行,seq[:index] 表示的就是被刪除元素的前半部分,值為[1 2],seq[index 1:] 表示的是刪除元素的後半部分,值為[4 5]。

  • 第 10 行,使用 append() 函數將兩個切片連接起來。

  • 第 12 行,輸出連接好的新切片,此時,索引為 2 的元素已被刪除。

程式碼的刪除過程可以使用下圖來描述。

golang數組怎麼刪除元素

更多程式相關知識,請造訪:

程式設計影片! !

以上是golang數組怎麼刪除元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn