Sobes.tech
Senior

Pouvons-nous, à la cinquième ligne, où se fait fmt.Println(v), accéder à l'unité (élément ajouté via append dans fill) et l'afficher?

sobes.tech IA

Réponse de l'IA

En Go, si dans la fonction fill vous ajoutez un élément à une tranche via append, cet élément existera dans la tranche après l'appel à fill si la tranche est transmise par référence ou renvoyée.

Exemple:

package main

import "fmt"

func fill(s []int) []int {
    s = append(s, 1) // ajout de l'élément
    return s
}

func main() {
    var v []int
    v = fill(v)
    fmt.Println(v) // ici affichera [1]
}

Si la tranche est transmise par valeur à fill et non renvoyée, les modifications ne sont pas enregistrées. Donc, pour accéder à l'élément ajouté à la ligne cinq, il faut soit retourner la tranche depuis fill, soit passer un pointeur vers la tranche.

Ainsi, à la ligne cinq, fmt.Println(v), vous pouvez afficher l'unité ajoutée si vous organisez correctement la transmission et le retour de la tranche.