天天看點

golang學習筆記之slice元素删除

golang slice元素删除非常友善,可以直接在循環周遊的時候删除,而不用擔心程式崩潰,結果也是和預期一緻;

示例代碼如下:

package main

import (
	    "fmt"
)

func main() {
    var infoSlice []int
    infoSlice = append(infoSlice, 1)
    infoSlice = append(infoSlice, 2)
    infoSlice = append(infoSlice, 3)
    infoSlice = append(infoSlice, 4)
    infoSlice = append(infoSlice, 5)

    for idx, v := range infoSlice {
        if 3 == v {
            infoSlice = append(infoSlice[:idx], infoSlice[idx+1:]...)
        }
    }

    fmt.Println(infoSlice)
}
           

輸出結果如下:

[1 2 4 5]
           

infoSlice[:idx]将slice先進行截斷,保留前面下标為0~idx的元素, infoSlice[idx+1:]… 表示将下标為idx+1後面的元素逐個加入到infoSlice[:idx]裡