Erhalten eines Wertebereichs aus einer Karte in Go
Bei einer gegebenen Karte gibt es mehrere Möglichkeiten, einen Bereich ihrer Werte effizient abzurufen . Lassen Sie uns diese Ansätze untersuchen:
Verwendung einer Schleife:
Der bereitgestellte Originalcode erfasst die Werte aus einer Karte mithilfe einer Schleife, um sie einem Slice zuzuweisen. Obwohl diese Methode häufig verwendet wird, kann sie mühsam sein und erfordert die manuelle Verwaltung der Slice-Größe.
Verwenden von make:
Mit der Make-Funktion von Go können Sie ein Slice erstellen eine bestimmte Länge und Kapazität. Sie können make verwenden, um ein Slice mit einer Kapazität zuzuweisen, die der Länge der Karte entspricht, und so sicherzustellen, dass das Slice über ausreichend Platz verfügt:
m := make(map[int]string) m[1] = "a" m[2] = "b" m[3] = "c" m[4] = "d" v := make([]string, 0, len(m)) // Initialize slice with capacity equal to map length for _, value := range m { v = append(v, value) }
Indem Sie die Kapazität des Slice auf die Länge der Karte initialisieren, optimieren Sie die Leistung, indem Sie Neuzuweisungen vermeiden wenn Sie Werte an das Slice anhängen.
Append verwenden:
Die Append-Funktion bietet eine praktische Möglichkeit, Werte zu einem Slice hinzuzufügen. Bei Bedarf wird das Slice automatisch zugewiesen und/oder erweitert, um sicherzustellen, dass es über ausreichende Kapazität verfügt.
m := make(map[int]string) m[1] = "a" m[2] = "b" m[3] = "c" m[4] = "d" v := []string{} // Initialize empty slice for _, value := range m { v = append(v, value) }
In diesem Beispiel beginnen wir mit einem leeren Slice und verwenden append, um ihm iterativ Werte hinzuzufügen.
Diese Ansätze bieten effiziente Möglichkeiten, einen Werteausschnitt aus einer Karte in Go abzurufen, sodass Sie die am besten geeignete Methode basierend auf Ihren spezifischen Anforderungen auswählen können.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich effizient ein Wertesegment aus einer Go-Map?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!