我想附加到作为映射值的切片,例如给定mmap[string][]string
:
if values, exists := m[key]; exists {
values = append(values, v)
// I don't want to call: m[key] = values
} else {
m[key] = []string{ v }
}
这显然不起作用,所以我尝试不按原样附加值,而是做一些类似的事情:
valuesPtr := &values
*values = append(values, v)
但这也不起作用。我该怎么做?
您不能这样做。
append
返回一个新的切片,因为可能需要调整切片的大小才能完成追加。您必须更新地图以使用新返回的切片,这在没有按键引用的情况下是无法完成的。