func main(){
var array [10]int
sliceA := array[0:5]
append(sliceA, 4)
fmt.Println(sliceA)
}
Erreur: append (sliceA, 4) évalué mais non utilisé
Je ne sais pas pourquoi? L'opération d'ajout de tranche n'est pas exécutée ...
Voir: Ajout et copie de tranches
Dans Go, les arguments sont passés par valeur.
L'utilisation typique de append
est:
a = append(a, x)
Vous devez écrire:
func main(){
var array [10]int
sliceA := array[0:5]
// append(sliceA, 4) // discard
sliceA = append(sliceA, 4) // keep
fmt.Println(sliceA)
}
Sortie :
[0 0 0 0 0 4]
J'espère que ça aide.
sliceA = append (sliceA, 4) append renvoie une tranche contenant une ou plusieurs nouvelles valeurs. Notez que nous devons accepter une valeur de retour de append car nous pourrions obtenir une nouvelle valeur de tranche.
vous pouvez essayer ceci:
sliceA = append(sliceA, 4)
fonction intégrée append([]type, ...type)
renvoie un tableau/une tranche de type, qui doit être affecté à la valeur souhaitée, tandis que le tableau/la tranche d'entrée est simplement une source. Simplement, outputSlice = append(sourceSlice, appendedValue)
Selon les documents Go:
La valeur résultante de append est une tranche contenant tous les éléments de la tranche d'origine plus les valeurs fournies.
Donc, la valeur de retour de 'append' contiendra votre tranche d'origine avec la portion ajoutée.