// insertValue is a convenience wrapper for insert(&Element{Value: v}, at).
func (l *List) insertValue(v interface{}, at *Element) *Element {
return l.insert(&Element{Value: v}, at)
}
通过看底层代码发现,list中存储的是insert的元素的拷贝, 所以想修改元素值,只能在insert的时候插入引用类型的,或者传指针。
例如:mylist.PushBack(&MyElem{****}) 而不是mylist.PushBack(MyElem{****}),否则遍历修改时,修改的是副本,而不是元素本身。
很简单的问题,一开始没想到,百度还查不到解决办法,所以虽然简单,但是还是要记录一下。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。