Heim > Artikel > Backend-Entwicklung > Wie erreicht man in Go mit sort.Strings() eine Sortierung ohne Berücksichtigung der Groß- und Kleinschreibung?
Sortierung ohne Berücksichtigung der Groß- und Kleinschreibung in Golang mit sort.Strings()
In Python wird die Sortierung ohne Berücksichtigung der Groß- und Kleinschreibung häufig mithilfe des Schlüsselparameters von erreicht die Funktion sorted(), die benutzerdefinierte Vergleichsfunktionen ermöglicht. In sort.Strings() von Go gibt es jedoch kein direktes Äquivalent.
Um in Go eine Sortierung ohne Berücksichtigung der Groß- und Kleinschreibung durchzuführen, können wir die leistungsstarken Slicing-Funktionen von Go nutzen. Ein Ansatz besteht darin, eine benutzerdefinierte Vergleichsfunktion zu erstellen, die die Kleinbuchstabenversionen der Zeichenfolgen vergleicht:
<code class="go">sort.Strings(data, func(i, j int) bool { return strings.ToLower(data[i]) < strings.ToLower(data[j]) })</code>
Diese Methode eignet sich gut für kleine Datensätze, kann jedoch bei großen Eingaben zu übermäßigen Zeichenfolgenzuordnungen führen.
Für eine effizientere Sortierung können wir die Zeichenfolgen Rune für Rune vergleichen und dabei ihre Groß-/Kleinschreibung ignorieren:
<code class="go">func lessLower(sa, sb string) bool { for { rb, nb := utf8.DecodeRuneInString(sb) if nb == 0 { return false } ra, na := utf8.DecodeRuneInString(sa) if na == 0 { return true } rb = unicode.ToLower(rb) ra = unicode.ToLower(ra) if ra != rb { return ra < rb } sa = sa[na:] sb = sb[nb:] } } sort.Strings(data, func(i, j int) bool { return lessLower(data[i], data[j]) })</code>
Dieser Ansatz vermeidet unnötige Zuordnungen, indem die Runen der Zeichenfolgen direkt verglichen werden.
Für mehr Flexibilität und sprachspezifische Sortierung sollten Sie die Verwendung des Pakets collate in Betracht ziehen, das Gebietsschemata und sprachspezifische Sortierregeln bereitstellt.
Das obige ist der detaillierte Inhalt vonWie erreicht man in Go mit sort.Strings() eine Sortierung ohne Berücksichtigung der Groß- und Kleinschreibung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!