Ich habe einen seltsamen Code in der Lua-Dokumentation gefunden:
%Vor% Warum wird local
noch einmal mit i1
und i2
verwendet? Sind sie nicht bereits unter lokalen Variablen deklariert? Müssen Sie das local
Schlüsselwort jedes Mal wiederholen, wenn Sie es zuweisen möchten?
Nein, es ist nicht notwendig, local
immer wieder zu verwenden. Die Variablen i1
und i2
werden wegen der ersten Zeile selbst im Bereich der Funktion local
sein.
Obwohl es nicht gemacht werden sollte, ist es nicht falsch, dieselben Variablen immer wieder zu definieren. Es wird nur eine neue Position im Stapel dem neueren und Schatten dem älteren zuweisen.
Das Folgende ist die Befehlsausgabe für eine einfache Funktion:
%Vor% %Vor% und Aktualisieren der zweiten local i = 3
auf nur i = 3
:
Beachten Sie den Unterschied bei der zweiten Anweisung.
Abgesehen davon ist die Funktion ziemlich ineffizient. Sie können stattdessen Folgendes verwenden:
%Vor% Technisch ist die Verwendung von local
oder nicht in der zweiten Deklaration nicht gleichwertig. Die Verwendung einer zweiten local
würde eine andere Variable deklarieren.
In Ihrem Beispielcode haben sie jedoch grundsätzlich das gleiche. Überprüfen Sie diesen einfacheren Code:
%Vor%und
%Vor% Verwenden Sie luac -p -l
gibt das folgende Ergebnis aus:
und
%Vor%Tags und Links lua