Heim >Backend-Entwicklung >Golang >Zuweisungsverhalten globaler Variablen in „:='
Der PHP-Editor Xiaoxin stellt Ihnen das globale Variablenzuweisungsverhalten in „:=" vor. In früheren PHP-Versionen musste die Zuweisung zu globalen Variablen mit dem Schlüsselwort „global“ deklariert werden. Da PHP Version 7.4 jedoch die neue Syntax „:=" für die Zuweisung globaler Variablen eingeführt hat, können wir globalen Variablen Werte präziser zuweisen, wodurch der Schritt der Verwendung des Schlüsselworts „global" entfällt. Diese neue Funktion verbessert nicht nur die Lesbarkeit und Wartbarkeit des Codes, sondern reduziert auch die Menge an unnötigem Code und ermöglicht uns eine komfortablere Bedienung globaler Variablen. Schauen wir uns diese neue Funktion genauer an!
Auch wenn der Code in main 函数
作用域中使用了 :=
,全局 level
仍被分配来自 getlevel()
den Wert des Werts zurückgibt. Kann jemand anhand einer Sprachspezifikation erklären, wie dies ein vorhersehbares und dokumentiertes Verhalten ist? Meine Idee war, die Spezifikation besser zu lesen, aber das habe ich offensichtlich nicht getan.
Code: https://go.dev/play/p/4pz0vl-2snn
65bcfadd4058Ausgabe:-
info <nil> print: info
In Ihrem Beispiel ist die neue lokale Variable für :=
实际上引入了一个名为 level
gemäß der Spezifikation, da sich der globale Bereich von jedem Funktionsbereich unterscheidet:
Kurze Variablendeklarationen können Variablen neu deklarieren, vorausgesetzt, sie wurden ursprünglich mit demselben Typ im selben Block (oder in der Argumentliste, wenn der Block ein Funktionskörper ist) deklariert.
Der Grund für das beschriebene Verhalten liegt darin, dass Sie nach level
的使用实际上都没有引用全局变量。 main
中的用法是从 :=
中新增的局部变量,print
中的用法是函数参数。删除参数(在声明和调用站点中),您将看到 print
在 print:
eine leere Zeichenfolge drucken.
Das obige ist der detaillierte Inhalt vonZuweisungsverhalten globaler Variablen in „:='. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!