Sobes.tech
Junior — Middle

Použili jste funkci Once v jazyce Go a jak jste ji použili ve svých projektech?

sobes.tech AI

Odpověď od AI

V jazyce Go se funkce sync.Once používá k zajištění, že určitý kus kódu bude proveden přesně jednou, i když je volání provedeno současně z více gorutin. To je užitečné například pro inicializaci zdrojů, které mají být vytvořeny pouze jednou.

Příklad použití:

var once sync.Once

func initialize() {
    fmt.Println("Inicializace dokončena")
}

func main() {
    for i := 0; i < 5; i++ {
        go func() {
            once.Do(initialize) // initialize bude voláno pouze jednou
        }()
    }
    time.Sleep(time.Second) // Čekáme na dokončení gorutin
}

Ve svých projektech jsem sync.Once používal pro línou inicializaci konfigurace nebo připojení k databázi, aby se zabránilo opakované inicializaci a závodům.