Xatolar
Go dasturlari xato holatini error qiymatlari orqali ifodalaydi.
error tipi — fmt.Stringer ga o'xshash o'rnatilgan interface:
type error interface {
Error() string
}
(fmt.Stringer kabi, fmt paketi qiymatlarni chiqarayotganda error interface'ini qidiradi.)
Funksiyalar ko'pincha error qiymatini qaytaradi, chaqiruvchi kod esa error nil ga teng yoki teng emasligini tekshirib, xatolarni qayta ishlashi kerak.
i, err := strconv.Atoi("42")
if err != nil {
fmt.Printf("raqamni o'zgartirib bo'lmadi: %v\n", err)
return
}
fmt.Println("O'zgartirilgan butun son:", i)
nilerror— muvaffaqiyatni,nilbo'lmaganerroresa muvaffaqiyatsizlikni bildiradi.
Yechimni kodning pastki qismidagi
Topshiriqlarbo'limiga yozing, so'ng Submit tugmasini bosing. Mavzu mustahkam o'zlashishi uchun ikkala topshiriqni ham bajaring.
Bol(a, b float64) (float64, error) funksiyasini yozing: b == 0 bo'lsa 0 va xato (fmt.Errorf("nolga bo'lib bo'lmaydi")), aks holda a / b va nil qaytarsin. Chaqiruvchi xatoni err != nil bilan tekshiradi.
ManfiyXato (tayyor) tipiga Error() string metodini bering: "manfiy qiymat: <son>" qaytarsin. So'ng Tekshir(n int) error funksiyasini yozing: n < 0 bo'lsa &ManfiyXato{n}, aks holda nil qaytarsin.