Heim > Artikel > Backend-Entwicklung > Wie übergebe ich in Go mehrere Schlüssel-Wert-Paare an einen Kontext?
Im Kontextpaket von Go können Sie mithilfe der Funktion WithValue() Schlüssel-Wert-Paare zu einem Kontext hinzufügen. was einen neuen Kontext mit dem hinzugefügten Paar zurückgibt. Was aber, wenn Sie mehrere Schlüssel-Wert-Paare an einen Kontext übergeben müssen?
Option 1: WithValue() mehrmals aufrufen
Sie können WithValue() aufrufen mehrmals, wobei der neue Kontext jedes Mal als erstes Argument übergeben wird:
import ( "context" ) func main() { // Create a background context. ctx := context.Background() // Add key-value pairs one by one. ctx = context.WithValue(ctx, "key1", "value1") ctx = context.WithValue(ctx, "key2", "value2") }
Option 2: Verwenden Sie Daten Struktur
Wenn Sie mehrere Schlüssel-Wert-Paare hinzufügen müssen, kann es effizienter sein, eine einzige Datenstruktur zu verwenden, um sie zu speichern. Anschließend können Sie die gesamte Datenstruktur mit WithValue() zum Kontext hinzufügen:
type MyStruct struct { Key1 string Key2 string } func main() { // Create a context. ctx := context.Background() // Create a data structure. data := MyStruct{ Key1: "value1", Key2: "value2", } // Add the data structure to the context. ctx = context.WithValue(ctx, "mydata", data) }
Option 3: Hybridlösung
Sie können auch einen Hybridansatz verwenden, Hier erstellen Sie eine Wrapper-Struktur, die eine Karte von Schlüssel-Wert-Paaren enthält. Anschließend können Sie die Wrapper-Struktur zum Kontext hinzufügen:
type MyWrapper struct { m map[string]string } func (w *MyWrapper) Get(key string) string { return w.m[key] } func main() { // Create a context. ctx := context.Background() // Create a wrapper struct. wrapper := MyWrapper{ m: map[string]string{ "key1": "value1", "key2": "value2", }, } // Add the wrapper struct to the context. ctx = context.WithValue(ctx, "mywrapper", wrapper) }
Fazit
Der Verwendungsansatz hängt vom spezifischen Anwendungsfall und den Leistungsanforderungen ab. Wenn Sie eine kleine Anzahl von Schlüssel-Wert-Paaren mit minimalem Overhead hinzufügen müssen, können Sie Option 1 verwenden. Wenn die Leistung ein Problem darstellt, möchten Sie möglicherweise Option 2 oder Option 3 verwenden.
Das obige ist der detaillierte Inhalt vonWie übergebe ich in Go mehrere Schlüssel-Wert-Paare an einen Kontext?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!