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]裡