如果基础数组必须增长以适应新元素,则append返回一个新切片。因此,是的,您必须将新的切片放回地图中。例如,这与字符串的工作方式没有什么不同:
var x map[string]stringx["a"] = "foo"y := x["a"]y = "bar"// x["a"] is still "foo"
要获得预期的行为,您必须使用切片指针。
aminoAcidsToCodons := map[rune]*[]string{}for codon, aminoAcid := range utils.CodonsToAminoAcid { mappedAminoAcid := aminoAcidsToCodons[aminoAcid] *mappedAminoAcid = append(*mappedAminoAcid, codon)}话虽这么说,因为这
nil是添加的完美的第一个参数,所以您可以将代码简化为
aminoAcidsToCodons := map[rune][]string{}for codon, aminoAcid := range utils.CodonsToAminoAcid { aminoAcidsToCodons[aminoAcid] = append(aminoAcidsToCodons[aminoAcid], codon)}


