Heim > Artikel > Backend-Entwicklung > Was bedeutet es, eine Variable zu haben, die nur innerhalb des Handlers gültig ist?
In der go-optischen Dokumentation heißt es:
as a rule of thumb, you must only use context values within the handler, and you must not keep any references
Ist es in Ordnung, wenn ich den Kontext als Funktionsargument wie folgt übergebe:
func getlist(c *fiber.ctx) error { result, err := user.search(c) } func search(c *fiber.ctx) (user, err) { id := c.params("id") }
Wird dies als schlechte Praxis angesehen?
Ich verstehe diesen Satz nicht ganz:
as soon as you return from the handler, any values you have obtained from the context will be re-used in future requests and will change below your feet.
Wenn ich also die Antwort an den Client gesendet habe, wird der Wert von params wiederverwendet? Von wem wiederverwendet? Von mir oder auf Wunsch einer anderen Person?
func getlist(c *fiber.ctx) error { id := c.params("id") // 911 return c.sendstring("hello, world!") }
Wenn der Wert von id 911 ist, bedeutet das, dass die Anfragen anderer Leute auch 911 erhalten?
Was bedeutet das
will change below your feet
Wer kann es im Detail erklären, damit es für einen Anfänger wie mich leichter verständlich ist? Danke...
Das eigentliche Kontextobjekt kann vom Framework nach dem Aufruf Ihres Handlers wiederverwendet werden, sodass Sie sich nach der Rückkehr vom Handler nicht auf seinen Zustand verlassen können.
Ist es in Ordnung, wenn ich den Kontext so als Funktionsparameter übergebe?
Das ist in Ordnung, solange Search
der Kontext nicht woanders gespeichert ist. Wenn es für die Suche einfach den Wert im Kontext verwendet und die Ergebnisse zurückgibt, ist das in Ordnung.
Wenn ich also die Antwort an den Client gesendet habe, wird der Wert von params wiederverwendet? Von wem wiederverwendet? Von mir oder auf Wunsch einer anderen Person?
Das Framework verwendet das eigentliche Kontextobjekt wieder, während es spätere Anfragen bearbeitet.
Was bedeutet „Veränderungen werden unter Ihren Füßen passieren“?
Wenn Sie die obigen Ratschläge nicht befolgen und stattdessen nach der Rückkehr vom Handler einen Verweis auf den Kontext beibehalten, ändern sich die Werte in diesem Kontext unerwartet, da das Framework diesen Kontext für neue Anforderungen verwendet.
Das obige ist der detaillierte Inhalt vonWas bedeutet es, eine Variable zu haben, die nur innerhalb des Handlers gültig ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!