Lua - Variablen

Eine Variable ist nichts anderes als ein Name für einen Speicherbereich, den unsere Programme bearbeiten können. Es kann verschiedene Arten von Werten enthalten, einschließlich Funktionen und Tabellen.

Der Name einer Variablen kann aus Buchstaben, Ziffern und dem Unterstrich bestehen. Es muss entweder mit einem Buchstaben oder einem Unterstrich beginnen. Groß- und Kleinbuchstaben unterscheiden sich, da bei Lua zwischen Groß- und Kleinschreibung unterschieden wird. Es gibt acht grundlegende Arten von Werten in Lua -

In Lua gibt es zwar keine variablen Datentypen, aber drei Typen, die auf dem Umfang der Variablen basieren.

  • Global variables - Alle Variablen gelten als global, sofern sie nicht ausdrücklich als lokal deklariert sind.

  • Local variables - Wenn der Typ für eine Variable als lokal angegeben wird, ist sein Gültigkeitsbereich auf die Funktionen in ihrem Gültigkeitsbereich beschränkt.

  • Table fields - Dies ist ein spezieller Variablentyp, der alles außer Null einschließlich Funktionen enthalten kann.

Variablendefinition in Lua

Eine Variablendefinition bedeutet, dem Interpreter mitzuteilen, wo und wie viel Speicher für die Variable erstellt werden soll. Eine Variablendefinition hat einen optionalen Typ und enthält eine Liste einer oder mehrerer Variablen dieses Typs wie folgt:

type variable_list;

Hier, type ist optional lokal oder vom Typ angegeben, wodurch es global wird, und variable_listkann aus einem oder mehreren durch Kommas getrennten Bezeichnernamen bestehen. Einige gültige Erklärungen werden hier angezeigt -

local    i, j
local    i
local    a,c

Die Linie local i, jbeide deklarieren und definieren die Variablen i und j; Dies weist den Interpreter an, Variablen mit den Namen i, j zu erstellen, und begrenzt den Bereich auf lokal.

Variablen können in ihrer Deklaration initialisiert (mit einem Anfangswert versehen) werden. Der Initialisierer besteht aus einem Gleichheitszeichen, gefolgt von einem konstanten Ausdruck wie folgt:

type variable_list = value_list;

Einige Beispiele sind -

local d , f = 5 ,10     --declaration of d and f as local variables. 
d , f = 5, 10;          --declaration of d and f as global variables. 
d, f = 10               --[[declaration of d and f as global variables. 
                           Here value of f is nil --]]

Für die Definition ohne Initialisierer: Variablen mit statischer Speicherdauer werden implizit mit nil initialisiert.

Variable Deklaration in Lua

Wie Sie in den obigen Beispielen sehen können, folgen Zuweisungen für mehrere Variablen einem Format für variable_list und value_list. Im obigen Beispiellocal d, f = 5,10 Wir haben d und f in der Variablenliste und 5 und 10 in der Werteliste.

Die Wertzuweisung in Lua erfolgt wie die erste Variable in der Variablenliste mit dem ersten Wert in der Werteliste und so weiter. Daher ist der Wert von d 5 und der Wert von f ist 10.

Beispiel

Versuchen Sie das folgende Beispiel, in dem Variablen oben deklariert wurden, aber innerhalb der Hauptfunktion definiert und initialisiert wurden:

-- Variable definition:
local a, b

-- Initialization
a = 10
b = 30

print("value of a:", a)

print("value of b:", b)

-- Swapping of variables
b, a = a, b

print("value of a:", a)

print("value of b:", b)

f = 70.0/3.0
print("value of f", f)

Wenn der obige Code erstellt und ausgeführt wird, wird das folgende Ergebnis erzeugt:

value of a:	10
value of b:	30
value of a:	30
value of b:	10
value of f	23.333333333333

LWerte und RWerte in Lua

Es gibt zwei Arten von Ausdrücken in Lua -

  • lvalue- Ausdrücke, die sich auf einen Speicherort beziehen, werden als "lvalue" -Ausdruck bezeichnet. Ein Wert kann entweder als linke oder rechte Seite einer Zuweisung angezeigt werden.

  • rvalue- Der Begriff rWert bezieht sich auf einen Datenwert, der an einer bestimmten Adresse im Speicher gespeichert ist. Ein r-Wert ist ein Ausdruck, dem kein Wert zugewiesen werden kann. Dies bedeutet, dass ein r-Wert möglicherweise auf der rechten Seite, jedoch nicht auf der linken Seite einer Zuweisung angezeigt wird.

Variablen sind l-Werte und können daher auf der linken Seite einer Zuweisung angezeigt werden. Numerische Literale sind r-Werte und können daher nicht zugewiesen werden und können nicht auf der linken Seite angezeigt werden. Es folgt eine gültige Aussage -

g = 20

Das Folgende ist jedoch keine gültige Aussage und würde einen Build-Time-Fehler erzeugen -

10 = 20

In der Programmiersprache Lua ist es abgesehen von den oben genannten Zuweisungstypen möglich, mehrere l- und r-Werte in derselben einzelnen Anweisung zu haben. Es ist unten gezeigt.

g,l = 20,30

In der obigen Aussage ist 20 g und 30 l zugeordnet.