Custom Sort Implementation
Maxsus saralash
Struct'lar ro'yxatini biror maydon bo'yicha saralash kerak bo'lsa, sort.Slice eng qulay yo'l — o'zingizning "kim kimdan oldin turishi kerak" qoidangizni beradi.
package main
import (
"fmt"
"sort"
)
type Person struct {
Name string
Age int
}
func main() {
people := []Person{{"Aziz", 25}, {"Bobur", 19}, {"Dilnoza", 30}}
sort.Slice(people, func(i, j int) bool {
return people[i].Age < people[j].Age
})
fmt.Println(people)
}sort.Slice(slice, less) — less(i, j) funksiyasini beradi, u "i-elementi j-elementidan oldin turishi kerakmi?" degan savolga true/false javob beradi. Bu yerda yoshi kichikroq bo'lgan avval keladi. Xohlagan mezon bo'yicha (ism, narx, sana...) saralashda ayni shu naqsh ishlatiladi — faqat less funksiyasi ichidagi shartni o'zgartirasiz.
>_ Exercise
Mahsulotlarni narxi bo'yicha kamayish tartibida saralang.
- •products'ni sort.Slice bilan narxi bo'yicha KATTADAN KICHIKKA saralang
- •natijani chop eting
Stuck? Reveal a hint to help you.
Key Takeaway
Key Takeaway:
sort.Slice bilan istalgan mezon (o'sish, kamayish, istalgan maydon) bo'yicha saralashni less funksiyasi orqali o'zingiz belgilaysiz.
NEXT UP
Time & Utilities Capstone
$ go run main.go
Kodingizni ishga tushiring