繁体   English   中英

为什么golang中的slices.Delete()会复制下一个元素?

[英]Why does slices.Delete() in golang copy the next element?

示例代码:

func main() {
    bar := []string{"Monday", "Tuesday", "Wednesday"}
    slices.Delete(bar, 0, 1) // I want to delete 'Monday'
    fmt.Println(bar)         // prints [Tuesday Wednesday Wednesday]
}

我不明白为什么我会得到一份“星期三”。 我期待一个二元素切片。

slices.Delete返回修改后的切片。 您应该将其用作:

bar=slices.Delete(bar, 0, 1) 

这是因为删除操作移动了切片中的元素,然后返回一个更短的切片,但原始切片bar保持不变。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM