Sobes.tech
Junior — Middle

¿Ha utilizado la función Once en el lenguaje Go y cómo la ha utilizado en sus proyectos?

sobes.tech AI

Respuesta de la IA

En el lenguaje Go, la función sync.Once se utiliza para garantizar que un fragmento de código se ejecute exactamente una vez, incluso si la llamada proviene de varias goroutines al mismo tiempo. Esto es útil, por ejemplo, para la inicialización de recursos que deben crearse solo una vez.

Ejemplo de uso:

var once sync.Once

func initialize() {
    fmt.Println("Inicialización completada")
}

func main() {
    for i := 0; i < 5; i++ {
        go func() {
            once.Do(initialize) // initialize se llamará solo una vez
        }()
    }
    time.Sleep(time.Second) // Esperamos a que terminen las goroutines
}

En mis proyectos, he utilizado sync.Once para la inicialización perezosa de la configuración o la conexión a la base de datos, para evitar inicializaciones repetidas y condiciones de carrera.