未从列表中删除元素.列表



如果我执行下面的代码,列表中的元素不会被删除。我很确定这是因为不知何故在 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/

相关内容

  • 没有找到相关文章

最新更新