Heim >Backend-Entwicklung >Golang >Wie kann ich Schlüssel aus einer Go-Map effizient ausschneiden?
Schlüssel aus Karten in Go ausschneiden
Frage:
Gibt es einen effizienteren Weg? um einen Schlüsselausschnitt von einer Karte in Go zu erhalten?
Derzeit besteht ein gängiger Ansatz darin Iterieren Sie über die Karte und kopieren Sie die Schlüssel in ein Slice:
i := 0 keys := make([]int, len(mymap)) for k := range mymap { keys[i] = k i++ }
Antwort:
Die Verwendung der Make-Funktion mit der angegebenen Slice-Kapazität kann die Effizienz verbessern, indem das eliminiert wird Notwendigkeit von Neuzuweisungen:
keys := make([]int, len(mymap)) i := 0 for k := range mymap { keys[i] = k i++ }
Dieser Ansatz ist etwas prägnanter und eliminiert den Overhead, der mit dem Anhängen an ein Slice verbunden ist. In Tests mit Karten, die eine große Anzahl von Schlüsseln enthalten, hat sich gezeigt, dass es 20 % schneller ist als die Verwendung der Append-Funktion.
Während die Make-Funktion die Kapazität des Slice festlegt, ist es erwähnenswert, dass das Append immer noch einige Kosten verursacht zusätzlicher Overhead, der prüft, ob die Kapazität bei jedem Anhängen erreicht wurde. Die direkte Zuweisung von Array-Mitgliedern kann in diesem Fall zu einer Leistungsverbesserung führen.
Das obige ist der detaillierte Inhalt vonWie kann ich Schlüssel aus einer Go-Map effizient ausschneiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!