Sobes.tech
Junior — Middle

Avez-vous utilisé la fonction Once dans le langage Go et comment l'avez-vous utilisée dans vos projets?

sobes.tech IA

Réponse de l'IA

Dans le langage Go, la fonction sync.Once est utilisée pour garantir qu’un certain morceau de code ne s’exécute qu’une seule fois, même si l’appel provient de plusieurs goroutines simultanément. Cela est utile, par exemple, pour l’initialisation de ressources qui doivent être créées une seule fois.

Exemple d’utilisation :

var once sync.Once

func initialize() {
    fmt.Println("Initialisation terminée")
}

func main() {
    for i := 0; i < 5; i++ {
        go func() {
            once.Do(initialize) // initialize sera appelé une seule fois
        }()
    }
    time.Sleep(time.Second) // Attendre la fin des goroutines
}

Dans mes projets, j’ai utilisé sync.Once pour l’initialisation paresseuse de la configuration ou de la connexion à la base de données, afin d’éviter des initialisations répétées et des conditions de course.