Golang ialah bahasa pengaturcaraan yang cekap, ringkas dan boleh dipercayai yang digunakan secara meluas dalam pembangunan bahagian pelayan dan pengaturcaraan sistem. Di Golang, pakej isihan menyediakan fungsi pengisihan yang kaya yang boleh memenuhi pelbagai keperluan pengisihan. Artikel ini akan memperkenalkan cara menggunakan pakej isihan Golang.
Pakej isihan menyediakan fungsi untuk mengisih pada jenis jujukan yang berbeza, seperti []int, []float64, []rentetan, dsb. . Ia juga menyediakan isihan antara muka umum.Antaramuka, yang boleh digunakan untuk menentukan jenis isihan tersuai. Algoritma pengisihan yang disediakan oleh pakej isihan ialah beberapa isihan cepat dan isihan timbunan yang dioptimumkan. Dalam pakej sort, terdapat tiga fungsi utama: Sort, Reverse dan IsSorted.
Fungsi Isih mengisih urutan yang melaksanakan isihan.Antaramuka dalam tertib menaik. Antara muka sort.Interface mentakrifkan tiga kaedah: Len, Swap dan Less. Antaranya, kaedah Len mengembalikan panjang jujukan, kaedah Swap menukar kedudukan dua elemen, dan kaedah Less mengembalikan sama ada elemen pada kedudukan i lebih kecil daripada elemen pada kedudukan j. Contohnya adalah seperti berikut:
package main import ( "fmt" "sort" ) type persons []struct { name string age int } func (ps persons) Len() int { return len(ps) } func (ps persons) Swap(i, j int) { ps[i], ps[j] = ps[j], ps[i] } func (ps persons) Less(i, j int) bool { return ps[i].age < ps[j].age } func main() { ps := persons{{"Tom", 25}, {"Jerry", 20}, {"Alice", 30}} sort.Sort(ps) fmt.Println(ps) }
Hasil output ialah:
[{Jerry 20} {Tom 25} {Alice 30}]
Fungsi Songsang mengembalikan urutan yang melaksanakan urutan. Antara muka antara muka urutan terbalik. Contohnya adalah seperti berikut:
package main import ( "fmt" "sort" ) func main() { ns := []int{3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5} sort.Sort(sort.Reverse(sort.IntSlice(ns))) fmt.Println(ns) }
Hasil output ialah:
[9 6 5 5 5 4 3 3 2 1 1]
Fungsi IsSorted menentukan sama ada jujukan yang melaksanakan sort.Antaramuka sudah disusun mengikut peraturan kaedah Kurang. Contohnya adalah seperti berikut:
package main import ( "fmt" "sort" ) func main() { ns := []int{1, 2, 3, 3, 4, 5} fmt.Println(sort.IsSorted(sort.IntSlice(ns))) ns = []int{1, 2, 3, 4, 3, 5} fmt.Println(sort.IsSorted(sort.IntSlice(ns))) }
Hasil output ialah:
true false
Kita juga boleh mengisih berdasarkan jenis tersuai tertentu Properties diisih. Contohnya adalah seperti berikut:
package main import ( "fmt" "sort" ) type Person struct { Name string Age int } type Persons []*Person func (ps Persons) Len() int { return len(ps) } func (ps Persons) Swap(i, j int) { ps[i], ps[j] = ps[j], ps[i] } func (ps Persons) Less(i, j int) bool { return ps[i].Age < ps[j].Age } func main() { ps := Persons{{"Tom", 25}, {"Jerry", 20}, {"Alice", 30}} sort.Sort(ps) for _, p := range ps { fmt.Printf("%s %d\n", p.Name, p.Age) } }
Hasil output ialah:
Jerry 20 Tom 25 Alice 30
Ringkasan:
Pakej isihan Golang menyediakan fungsi pengisihan yang berkuasa yang boleh mengisih pelbagai jenis daripada urutan. Kami juga boleh menggunakan sort.Antara muka antara muka untuk menentukan jenis tersuai pengisihan. Algoritma pengisihan yang disediakan oleh pakej isihan dioptimumkan isihan cepat dan isihan timbunan, jadi ia lebih cekap. Keseluruhan pakej isihan mudah digunakan dan mempunyai logik yang jelas Ia adalah pakej yang sangat diperlukan di Golang.
Atas ialah kandungan terperinci Mari kita bincangkan tentang cara menggunakan pakej isihan Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!