Junior — Middle
Loyihalaringizda error.Group yordamida xatoliklarni qanday boshqarishni amalga oshirganingiz haqida misol bilan bo'lisha olasizmi?
sobes.tech AI
AIdan javob
Go paketidagi errors bilan Group turi (masalan, golang.org/x/sync/errgroup dan) parallel gorutinlarda yuzaga keladigan bir nechta xatoliklarni qulay yig‘ish va ishlash imkonini beradi.
errgroup.Group dan foydalanib, vazifalarni parallel bajarish va xatoliklarni boshqarish misoli:
import (
"fmt"
"golang.org/x/sync/errgroup"
)
func processTasks() error {
var g errgroup.Group
vazifalar := []func() error{
func() error { /* vazifa 1 */ return nil },
func() error { /* vazifa 2 */ return fmt.Errorf("2-vazifada xato") },
func() error { /* vazifa 3 */ return nil },
}
for _, vazifa := range vazifalar {
v := vazifa
g.Go(func() error {
return v()
})
}
if err := g.Wait(); err != nil {
// Birinchi yuzaga kelgan xatoni ishlash
return err
}
return nil
}
Loyihalarimda, errgroup dan foydalanib, bir nechta mustaqil operatsiyalarni parallel tarzda boshlash va xatoliklarni tartibli yig‘ish uchun ishlatganman, bu kodni soddalashtiradi va o‘qilishi yaxshilanadi.