Golang-Slice删除元素
slice
slice 的底层存储是数组,所以函数传参的时候传slice可能会对原 slice 更改,除非由于 slice 由于扩容重新创建了。
删除 slice 中指定元素的方法
for i := 0; i < len(nums); i++ {
if nums[i] == 0 {
nums = append(nums[:i], nums[i+1:]...)
i--
}
}
func DeleteSliece2(nums []int, num int) []int {
j := 0
for _, v := range nums {
if v != num {
nums[j] = v
j++
}
}
return nums[:j]
}
func DeleteSliceItem(nums []int, num int) []int {
result := make([]int, 0, len(nums))
for _, v := range nums {
if v != num {
result = append(result, v)
}
}
return result
}
参考
Last updated
Was this helpful?