In Golang ist Map eine sehr häufig verwendete Datenstruktur, die es uns ermöglicht, Daten in Form von Schlüssel-Wert-Paaren zu speichern und darauf zuzugreifen. Manchmal müssen wir jedoch einen Schlüssel in der Karte ändern, was ein relativ häufiger Vorgang ist. Der Schlüssel von Map in der Go-Sprache ist jedoch ein unveränderlicher Typ, d. h. der Wert von Schlüssel darf nicht geändert werden. Wie ändert man also den Kartenschlüssel? In diesem Artikel werden drei Methoden zum Ändern der Key of Golang-Karte vorgestellt.
Methode 1: Zuerst den alten Schlüssel löschen und dann einen neuen Schlüssel hinzufügen
Zuerst können wir zuerst den alten Schlüssel löschen und dann der Karte einen neuen Schlüssel hinzufügen. Diese Methode ist relativ einfach und leicht zu implementieren, erfordert jedoch, dass wir die Karte zweimal bedienen, was etwas umständlich ist.
Der Beispielcode lautet wie folgt:
// 创建一个 Map 变量 m := map[string]int{ "apple": 1, "banana": 2, } // 删除旧的 Key,并添加一个新的 Key delete(m, "apple") m["orange"] = 3 // 输出 Map fmt.Println(m)
Im obigen Code erstellen wir zunächst eine Map-Variable und weisen ihr zwei Schlüssel zu: Apfel und Banane, entsprechend 1 bzw. 2. Dann haben wir den ursprünglichen Schlüssel: apple über die Funktion delete()
gelöscht. Als nächstes fügen wir der Karte erneut einen neuen Schlüssel hinzu: orange und weisen ihm den Wert 3 zu. Schließlich geben wir diese Map über fmt.Println()
aus. delete()
函数将原有的 Key:apple 给删除了。接着,我们再次向 Map 中添加一个新的 Key:orange,并给它赋一个值 3。最后,我们通过 fmt.Println()
来输出这个 Map。
执行上述代码,将得到如下输出结果:
map[banana:2 orange:3]
可以看到,原有的 Key:apple 已经被删除,在 Map 中只留下 banana 和 orange 两个 Key,且 Key:orange 代替了原有的 Key:apple。
当然,这种方法也存在一些限制。如果 Map 中不存在要删除的 Key,则该方法不能实现修改 Key 的目的。
方法二:用新的 Key 覆盖旧的 Key 的值
第二种方法比较直接,我们可以用一个新的 Key 来覆盖旧的 Key 的值。这种方法不需要对 Map 进行多次操作,相对来说比较简单,但是也存在一些限制。
示例代码如下:
// 创建一个 Map 变量 m := map[string]int{ "apple": 1, "banana": 2, } // 用新的 Key 覆盖旧的 Key 的值 m["apple"] = 3 // 输出 Map fmt.Println(m)
上述代码中,我们首先创建了一个 Map 变量,并赋值给它两个 Key:apple 和 banana,分别对应着 1 和 2。然后,我们直接用一个新的 Key:apple 来覆盖旧的 Key 的值,即将 Key:apple 的值从 1 修改为 3。最后,我们通过 fmt.Println()
来输出这个 Map。
执行上述代码,将得到如下输出结果:
map[apple:3 banana:2]
可以看到,我们成功修改了 Key:apple 的值。
当然,这种方法也有其限制。如果 Map 中不存在要修改的 Key,则该方法不能实现修改 Key 的目的。
方法三:使用第三方库
除了上述两种方法,我们还可以使用一些第三方库来修改 Golang Map 的 Key。例如,可以使用 gouuid
库中的 UUID()
函数生成一个新的 Key,并将其赋值给原有的 Key。这种方法非常简单,但是需要我们引入第三方库。
下面是示例代码:
import ( "github.com/satori/go.uuid" ) // 创建一个 Map 变量 m := map[string]int{ "apple": 1, "banana": 2, } // 使用第三方库生成新的 Key,替代旧的 Key newKey := uuid.NewV4().String() m[newKey] = m["apple"] delete(m, "apple") // 输出 Map fmt.Println(m)
上述代码中,我们首先引入了 gouuid
库,用来生成一个新的 Key。然后,我们创建了一个 Map 变量,并赋值给它两个 Key:apple 和 banana,分别对应着 1 和 2。接着,我们使用 UUID()
函数生成了一个新的 Key,并将其赋值给原有的 Key:apple,即将 Key:apple 替换为新的 Key。最后,我们通过 delete()
函数将旧的 Key:apple 删除。最终,我们通过 fmt.Println()
来输出这个 Map。
执行上述代码,将得到如下输出结果:
map[4a5e45b7-465b-4b4c-88f1-6d6b3b0ee022:1 banana:2]
可以看到,我们使用 UUID()
rrreee
Sie können sehen, dass der ursprüngliche Schlüssel: Apfel gelöscht wurde, sodass nur noch Banane und Orange in der Karte übrig sind und Schlüssel: Orange den ursprünglichen Schlüssel: Apfel ersetzt. Natürlich gibt es bei dieser Methode einige Einschränkungen. Wenn der zu löschende Schlüssel nicht in der Karte vorhanden ist, kann diese Methode den Zweck der Änderung des Schlüssels nicht erreichen. 🎜🎜Methode 2: Überschreiben Sie den alten Schlüsselwert mit einem neuen Schlüssel🎜🎜Die zweite Methode ist einfacher: Wir können einen neuen Schlüssel verwenden, um den alten Schlüsselwert zu überschreiben. Diese Methode erfordert nicht mehrere Operationen auf der Karte und ist relativ einfach, weist jedoch auch einige Einschränkungen auf. 🎜🎜Der Beispielcode lautet wie folgt: 🎜rrreee🎜Im obigen Code erstellen wir zunächst eine Map-Variable und weisen ihr zwei Schlüssel zu: Apfel und Banane, entsprechend 1 bzw. 2. Dann überschreiben wir direkt den alten Schlüsselwert mit einem neuen Schlüssel: Apfel, das heißt, wir ändern den Wert von Schlüssel: Apfel von 1 auf 3. Schließlich geben wir diese Map überfmt.Println()
aus. 🎜🎜Führen Sie den obigen Code aus und Sie erhalten die folgende Ausgabe: 🎜rrreee🎜Wie Sie sehen können, haben wir den Wert von Key: apple erfolgreich geändert. 🎜🎜Natürlich hat diese Methode auch ihre Grenzen. Wenn der zu ändernde Schlüssel nicht in der Karte vorhanden ist, kann diese Methode den Zweck der Änderung des Schlüssels nicht erreichen. 🎜🎜Methode 3: Verwenden Sie Bibliotheken von Drittanbietern🎜🎜Zusätzlich zu den beiden oben genannten Methoden können wir auch einige Bibliotheken von Drittanbietern verwenden, um die Key of Golang-Karte zu ändern. Sie können beispielsweise die Funktion UUID()
in der Bibliothek gouuid
verwenden, um einen neuen Schlüssel zu generieren und ihn dem ursprünglichen Schlüssel zuzuweisen. Diese Methode ist sehr einfach, erfordert jedoch die Einführung einer Bibliothek eines Drittanbieters. 🎜🎜Das Folgende ist der Beispielcode: 🎜rrreee🎜Im obigen Code haben wir zuerst die gouuid
-Bibliothek eingeführt, um einen neuen Schlüssel zu generieren. Dann haben wir eine Map-Variable erstellt und ihr zwei Schlüssel zugewiesen: Apfel und Banane, entsprechend 1 bzw. 2. Als nächstes verwenden wir die Funktion UUID()
, um einen neuen Schlüssel zu generieren und ihn dem ursprünglichen Schlüssel: apple zuzuweisen, d. h. Schlüssel: apple durch den neuen Schlüssel zu ersetzen. Schließlich löschen wir den alten Schlüssel: Apple über die Funktion delete()
. Schließlich geben wir diese Map über fmt.Println()
aus. 🎜🎜Führen Sie den obigen Code aus und Sie erhalten die folgende Ausgabe: 🎜rrreee🎜Wie Sie sehen können, haben wir die Funktion UUID()
verwendet, um erfolgreich einen neuen Schlüssel zu generieren und ihn durch den ursprünglichen Schlüssel zu ersetzen: Apfel. 🎜🎜Zusammenfassung🎜🎜Die oben genannten sind drei Methoden zum Ändern der Key of Golang-Karte. Natürlich hat jede dieser Methoden ihre eigenen Vor- und Nachteile, und die geeignete Methode sollte basierend auf der tatsächlichen Situation ausgewählt werden. Wenn Sie eine bessere Methode haben, teilen Sie diese bitte im Kommentarbereich mit. 🎜Das obige ist der detaillierte Inhalt vonGolang-Map-Änderungsschlüssel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!