繁体   English   中英

未从 list.List 中删除元素

[英]Element not being removed from list.List

如果我执行下面的代码,列表中的元素不会被删除。 我很确定这是因为不知何故在 Create() 中创建了列表的深层副本。 如果我将Create的返回从ListWrapper*ListWrapper ,则代码有效。

对我来说仍然不直观,为什么它不适用于副本。 任何人都可以对此有所了解吗? 感谢帮助。

type ListWrapper struct {
    Value list.List
}

func Create() ListWrapper {
    var lw ListWrapper
    lw.Value.PushBack(1)
    return lw
}

func main() {
    lw := Create()
    lw.Value.Remove(lw.Value.Back())
}

与 C 不同,在 Go 中,将使用指针将切片复制到函数/方法。 这意味着您可以更改他们的项目,但不能从中添加或删除项目。

所以如果你想通过引用传递它,你可以使用指针。

更多信息: https://www.geeksforgeeks.org/how-to-pass-a-slice-to-function-in-golang/

暂无
暂无

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

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