我想附加到作为地图值的切片,例如给定m boolean b = true;
MyInterface correctClass = ClassFactory.MyInterface(b);
:
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 }
}
但这也不起作用。我该怎么办?
答案 0 :(得分:3)
您不能那样做。
append
返回一个新的切片,因为可能需要调整切片的大小才能完成追加。您必须更新地图以使用新返回的切片,如果不通过键引用,则无法完成此操作。