Avoid Else After Return
return'dan keyin else ishlatmang
Agar if bloki return bilan tugasa, undan keyingi else shart emas — kod shu bilan ham xuddi shunday ishlaydi, lekin kamroq chuqurlashadi va o'qish osonlashadi.
package main
import "fmt"
// Yomon: keraksiz else, chuqurlik oshadi
func gradeOld(score int) string {
if score >= 60 {
return "o'tdi"
} else {
if score >= 40 {
return "qayta topshirish"
} else {
return "yiqildi"
}
}
}
// Yaxshi: erta return, else yo'q, hammasi bir darajada
func grade(score int) string {
if score >= 60 {
return "o'tdi"
}
if score >= 40 {
return "qayta topshirish"
}
return "yiqildi"
}
func main() {
fmt.Println(grade(75))
fmt.Println(grade(50))
fmt.Println(grade(20))
}gradeOld va grade bir xil natija beradi, lekin grade o'qish uchun ancha osonroq: har bir shart bir xil chuqurlikda, "bosqichma-bosqich chiqib ketish" mantig'i bilan o'qiladi. Bu naqsh "guard clause" (qo'riqchi shart) deb ham ataladi — avval istisno holatlarni erta return bilan yopib, asosiy mantiqni chuqur ichma-ich joylashtirmaslik.
>_ Exercise
else'siz, erta return bilan yozing.
- •categorize(age int) funksiyasini yozing: 18 dan kichik bo'lsa "bolalar", 65 dan katta/teng bo'lsa "nafaqaxo'r", aks holda "kattalar"
- •else ishlatmasdan, faqat erta return bilan yozing
Stuck? Reveal a hint to help you.
Key Takeaway
Key Takeaway:
if bloki return bilan tugasa, keyingi kod avtomatik "else" holatida ishlaydi — ortiqcha else yozib, chuqurlikni oshirmang.
NEXT UP
Use Named Result Parameters Sparingly
$ go run main.go
Kodingizni ishga tushiring