Heim > Backend-Entwicklung > Golang > Golang-Kartenmodifikation

Golang-Kartenmodifikation

PHPz
Freigeben: 2023-05-16 11:37:07
Original
682 Leute haben es durchsucht

Die Verwendung von „map“ in Golang ist sehr verbreitet, da „map“ schnell die Daten finden kann, auf die zugegriffen werden muss. Bei der Verwendung von „map“ stoßen wir jedoch häufig auf Situationen, in denen wir die Werte in der Karte ändern müssen. Die Art und Weise, die Karte in Golang zu ändern, unterscheidet sich geringfügig von der anderer Sprachen.

In Golang ist Map ein Referenztyp, der über die Make-Funktion erstellt werden kann. Das Folgende ist ein Beispiel für die Erstellung einer Karte:

m := make(map[string]int)
Nach dem Login kopieren

Die Schlüsselwerttypen der Karte sind string bzw. int.

Wir können der Karte Elemente mit der folgenden Methode hinzufügen:

m["one"] = 1
Nach dem Login kopieren

Was ist, wenn wir die Elemente in der Karte ändern möchten? Es ist zu beachten, dass Sie beim Ändern von Elementen in einer Karte in Golang keine Indizes verwenden können, um sie zu ändern. Stattdessen müssen Sie die eigene Methode zum Löschen + Hinzufügen von Elementen verwenden, um Änderungen vorzunehmen. Das Folgende ist ein Beispiel für die Änderung der Karte:

m := make(map[string]int)
m["one"] = 1
fmt.Println(m)

// 修改元素
delete(m, "one") // 删除指定元素
m["two"] = 2     // 添加修改后的元素
fmt.Println(m)
Nach dem Login kopieren

Wie Sie sehen können, müssen wir für das Element „eins“, das geändert werden muss, das Element über die Löschfunktion löschen und dann das geänderte Element „zwei“ hinzufügen. durch Hinzufügen von Elementen. Die endgültige Ausgabe ist die geänderte Karte {"two":2}.

Es ist jedoch zu beachten, dass das Programm in Panik gerät, wenn das Element nicht in der Karte vorhanden ist und die Löschfunktion direkt zum Löschen des Elements verwendet wird. Daher müssen Sie beim Ändern der Karte zunächst feststellen, ob das Element in der Karte vorhanden ist, und dann den Löschvorgang ausführen, falls vorhanden. Das Folgende ist ein Beispiel für die Feststellung, ob ein Element vorhanden ist, und für die Änderung der Karte:

m := make(map[string]int)
m["one"] = 1
fmt.Println(m)

// 判断元素是否存在
if _, ok := m["one"]; ok {
    // 存在则进行删除操作
    delete(m, "one")
    m["two"] = 2 // 添加修改后的元素
}
fmt.Println(m)
Nach dem Login kopieren

Mit der oben genannten Methode können wir die Elemente in der Karte sicher ändern.

Zusätzlich zu den oben genannten Änderungsmethoden gibt es auch eine speziellere Änderungsmethode: Verwenden Sie die Bereichsdurchquerung der Karte, um die Elemente in der Karte zu ändern. Da der Bereich beim Durchqueren der Karte eine Kopie der Elemente in der Karte zurückgibt und nicht das Element selbst, können Sie die Elemente der Karte ändern, indem Sie die Kopie ändern. Das Folgende ist ein Beispiel für die Verwendung von Range Traversal zum Ändern einer Karte:

m := make(map[string]int)
m["one"] = 1
fmt.Println(m)

for key, value := range m {
    if key == "one" {
       m[key] = 2 // 修改副本
    }
}
fmt.Println(m)
Nach dem Login kopieren

Mit der oben genannten Range Traversal-Methode erreichen wir den Zweck, die Elemente in der Karte zu ändern.

Zusammenfassend lässt sich sagen, dass die Methode zum Ändern der Karte in Golang nicht so einfach ist wie in anderen Sprachen. Durch das Löschen und Hinzufügen von Elementen und die Verwendung von Bereichsdurchquerung können wir jedoch den Zweck der Änderung der Elemente in der Karte erreichen. Natürlich müssen wir in der tatsächlichen Entwicklung die geeignete Modifikationsmethode entsprechend den spezifischen Anforderungen auswählen.

Das obige ist der detaillierte Inhalt vonGolang-Kartenmodifikation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage