English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang Grundtutorials

Golang Steuerrichtlinien

Golang Funktion & Methode

Golang Struktur

Golang Schnittstelle & Array

Golang Zeichenkette(String)

Golang Zeiger

Golang Schnittstelle

Golang Konkurrenz

Golang Ausnahme(Error)

Golang andere Zubehör

Go Sprache Sortieren (Sort)

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()等)以检查值是否已排序。

Go Sortbeispiel

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]