Sobes.tech
Junior — Middle

Layihələrinizdə error.Group istifadə edərək səhvlərin idarə olunmasını necə həyata keçirdiyinizə dair nümunə paylaşa bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Go paketində errors ilə Group tipi (məsələn, golang.org/x/sync/errgroup-dən) paralel gorutinalarda baş verən bir neçə xətanı asanlıqla toplamaq və işləmək imkanı verir.

errgroup.Group istifadə edərək, tapşırıqları paralel icra etmək və xətaları idarə etmək nümunəsi:

import (
    "fmt"
    "golang.org/x/sync/errgroup"
)

func processTasks() error {
    var g errgroup.Group

    tapşırıqlar := []func() error{
        func() error { /* tapşırıq 1 */ return nil },
        func() error { /* tapşırıq 2 */ return fmt.Errorf("2-ci tapşırıqda xəta") },
        func() error { /* tapşırıq 3 */ return nil },
    }

    for _, tapşırıq := range tapşırıqlar {
        t := tapşırıq
        g.Go(func() error {
            return t()
        })
    }

    if err := g.Wait(); err != nil {
        // Qarşılaşılan ilk xətanı işləyin
        return err
    }
    return nil
}

Layihələrimdə, errgroup istifadə edərək, bir neçə müstəqil əməliyyatı paralel şəkildə başlatmışam və xətaları nizamlı şəkildə toplamışam, bu kodu sadələşdirir və oxunaqlılığı artırır.