Sobes.tech
Junior — Middle

Go dilində Once funksiyasını istifadə etdinizmi və layihələrinizdə necə istifadə etdiniz?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində, sync.Once funksiyası müəyyən bir kod parçasının yalnız bir dəfə icra olunmasını təmin etmək üçün istifadə olunur, hətta çağırış eyni vaxtda bir neçə goroutine-dən gəlsə belə. Bu, məsələn, resursların yalnız bir dəfə yaradılmalı olduğu zamanlar üçün faydalıdır.

İstifadə nümunəsi:

var once sync.Once

func initialize() {
    fmt.Println("İlkinləşdirmə tamamlandı")
}

func main() {
    for i := 0; i < 5; i++ {
        go func() {
            once.Do(initialize) // initialize yalnız bir dəfə çağırılacaq
        }()
    }
    time.Sleep(time.Second) // Goroutine-lərin tamamlanmasını gözləyirik
}

Layihələrimdə, sync.Once-dən konfigurasiya və ya verilənlər bazası bağlantısının tənbəl ilkinləşdirilməsi üçün istifadə etmişəm, təkrarlanan ilkinləşdirmələrin və yarış şərtlərinin qarşısını almaq üçün.