-2

我想附加到作为地图值的切片,例如给定 m map[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)

但这也行不通。我怎样才能做到这一点?

4

1 回答 1

3

你不能这样做。

append返回一个新切片,因为可能必须调整切片的大小才能完成追加。您必须更新您的地图以使用新返回的切片,如果不通过键引用就无法完成。

于 2018-12-03T06:19:44.787 回答