Ajout direct à une tranche dans une carte Go
Dans Go, vous pourriez rencontrer un scénario dans lequel vous souhaitez maintenir une carte qui associe runes avec des tranches et ajouter des éléments aux tranches correspondantes. Cependant, l'ajout direct à la tranche renvoyée en accédant à la carte (par exemple, mappedAminoAcid = append(mappedAminoAcid, codon)) ne fonctionne pas comme prévu. Au lieu de cela, vous devez utiliser la forme d'accès détaillée (aminoAcidsToCodons[aminoAcid] = append(mappedAminoAcid, codon)).
Ce comportement découle de la façon dont Go gère les tranches. Lorsque vous ajoutez à une tranche à l'aide de la fonction append, elle renvoie une nouvelle tranche si le tableau sous-jacent doit s'agrandir pour accueillir le nouvel élément. Par conséquent, pour mettre à jour la tranche stockée dans la carte, vous devez réattribuer la nouvelle tranche à la carte, comme vous le feriez avec des chaînes.
Par exemple :
<code class="go">var x map[string]string x["a"] = "foo" y := x["a"] y = "bar" // x["a"] is still "foo"</code>
Pour simplifier votre code, vous pouvez tirer parti du fait qu'une tranche nulle est un premier argument valide pour l'ajout :
<code class="go">aminoAcidsToCodons := map[rune][]string{} for codon, aminoAcid := range utils.CodonsToAminoAcid { aminoAcidsToCodons[aminoAcid] = append(aminoAcidsToCodons[aminoAcid], codon) }</code>
En comprenant comment les tranches fonctionnent dans Go, vous pouvez gérer efficacement les scénarios impliquant l'ajout de tranches dans les cartes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!