GoDasturchi
Custom Sort Implementation

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.

example.go
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.

Hints (0/3)

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

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

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.

example.go
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.

Hints (0/3)

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