English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Go verfügt über das Sortierpaket, das zum Sortieren von eingebauten sowie benutzerdefinierten Datentypen verwendet werden kann。
sort-Paket verfügt über verschiedene Methoden zum Sortieren verschiedener Datentypen, z.B. Ints(), Float64s(), Strings()等。
我们可以使用AreSorted()方法(例如Float64sAreSorted(), IntsAreSorted()等)以检查值是否已排序。
package main import ( "sort" "fmt" ) func main() { intValue := []int{10, 20, 5, 8} sort.Ints(intValue) fmt.Println("Ints: ", intValue) floatValue := []float64{10.5, 20.5, 5.5, 8.5} sort.Float64s(floatValue) fmt.Println("floatValue: ", floatValue) stringValue := []string{"Raj", "Mohan", "Roy"} sort.Strings(stringValue) fmt.Println("Strings:", stringValue) str := sort.Float64sAreSorted(floatValue) fmt.Println("Sorted: ", s
Ausgabe:
Ints: [5 8 10 20] floatValue: [5.5 8.5 10.5 20.5] Strings: [Mohan Raj Roy] Sorted: true
Angenommen, wir möchten die Zeichenfolgenarray nach der Länge der Zeichenfolgen sortieren, können wir auch unser eigenes Sortiermuster implementieren. Dafür müssen wir die von der Sortierinterface definierten eigenen Methoden Less, Len und Swap implementieren.
Dann müssen wir das Array in den Typ der Implementierung umwandeln.
package main import "sort" import "fmt" type OrderByLengthDesc []string func (s OrderByLengthDesc) Len() int { return len(s) } func (str OrderByLengthDesc) Swap(i, j int) { str[i], str[j] = str[j], str[i] } func (s OrderByLengthDesc) Less(i, j int) bool { return len(s[i]) > len(s[j]) } func main() { city := []string{"New York", "London","Washington","Delhi"} sort.Sort(OrderByLengthDesc(city)) fmt.Println(city) }
Ausgabe:
[Washington New York London Delhi]