我从来没有使用过 C/C++,所以我对 go 中的指针有点困惑。问题是:map[string][]InteractiveItems每个“房间”都有一个,我想在函数中更改它的一部分。这里是:
func (r *room) getItem(arg string) InteractiveItem {
for i, val := range r.interactiveItems {
for _, item := range val {
if item.getName() == arg {
var idxToDelete int
for idx := range val {
if val[idx].getName() == arg {
idxToDelete = idx
break
}
if len(val) == 0 {
delete(r.interactiveItems, i)
}
}
val = append(val[:idxToDelete], val[idxToDelete+1:]...)
return item
}
}
}
return nil
很明显,val函数内部在变化,而房间的地图却没有。我应该如何处理删除切片元素的指针?
噜噜哒
相关分类