Inhaltsverzeichnis
In früheren Tutorials haben wir gesehen, wie Lua ermöglicht die dynamische Handhabung sowohl von Werten als auch von Typen und zeichnet sich bei der Durchführung dieser Operationen immer durch Einfachheit und Vielseitigkeit aus.Aber das ist nicht alles Lua bietet in Bezug auf die Einfachheit herkömmlicherweise Deklarationen, die wir in Sprachen wie in . finden können C oder PascalWenn diese Deklarationen gleichermaßen Zuweisungen und Kontrollstrukturen enthalten, können wir sogar auf unkonventionelle Wege wie Mehrfachzuweisungen und lokale Deklarationen stoßen.
Die Aufgaben in Lua Sie sind extrem einfach und funktionieren, um den Wert einer Variablen zu einem bestimmten Zeitpunkt in unserem Programm zu ändern. Sehen wir uns ein einfaches Beispiel mit der interaktiven Konsole von . an Lua, die wir eingeben können, indem wir das reservierte Wort platzieren lua Im Terminal:
Lua Sie können sogar die Anzahl der Werte für die Anzahl der vorhandenen Variablen anpassen, zum Beispiel wenn die Werteliste kleiner als die Variablenliste ist, erhalten die zusätzlichen Variablen den Werttyp Null standardmäßig als Werte, sehen wir uns ein Beispiel für diesen Prozess an:
Neben globalen Variablen, Lua Es unterstützt lokale Variablen, die im Gegensatz zu globalen einen begrenzten Gültigkeitsbereich haben, der von dem Block abhängt, in dem sie deklariert wurden. Sehen wir uns an, wie wir eine lokale Variable deklarieren:
x = 10 local i = 1 while i <= x do local x = i * 2 print (x) i = i + 1 end if i> 20 then local xx = 20 print (x + 2) else print (x) end drucken (x)Wenn wir dasselbe in unserem Terminal ausführen, werden wir sehen, dass das Ergebnis möglicherweise nicht das ist, was wir erwarten, und das liegt daran, dass wir verschiedene Blöcke haben, in denen wir die Variablen verwenden. Sehen wir uns das Ergebnis an:
do local var1 = 16 local var2 = var1 + 20 x = 5 y = x + var1 end - Hier endet der Gültigkeitsbereich von var1 und var2 print (x, y) print (var1, var2)Wenn wir es in unserem Terminal ausführen, werden wir sehen, dass die Variablen x und y problemlos angezeigt werden, da sie global sind, aber für var1 und var2 endet ihr Geltungsbereich mit dem Block Ende, mal sehen:
KontrollstrukturenWie alle anderen Programmiersprachen Lua stellt uns eine Reihe von Kontrollstrukturen zur Verfügung, die wir in unseren Programmen verwenden können Wenn mit Bedingungen umgehen und während, wiederholen Ja Pro für iterative Schleifen, wobei außer wiederholen mit dem expliziten Terminator bis um und die anderen enden mit Ende.
Wie in den meisten Programmiersprachen die Deklaration Wenn prüft eine Bedingung und führt den Teil der dann oder der Teil von anders, wobei letzteres optional sein kann, sehen wir uns eine Reihe dieser Bedingungen an, wie sie in unseren Programmen zu sehen sind:
if var1 <0 then var1 = 0 end if var1 max lines then show () lines = 0 endHier haben wir drei Arten von Operationen, die grundlegende mit der dann, verwenden Sie return, um einen Wert gemäß der Bedingung und einen etwas vollständigeren Code zurückzugeben, der eine Funktion aufruft. Außerdem können wir schreiben Wenn verschachtelt mit sonst, was uns erspart, mehrere verwenden zu müssen endet, mal sehen wie es aussieht:
if operation == "+" then result = a + b elseif operation == "-" then result = a - b elseif operation == "*" then result = a * b elseif operation == "/" then result = a / b else error ("Ungültige Operation") endEs ist wichtig zu beachten, dass dies nicht nur optimaler, sondern auch notwendig ist, da Lua hat nicht die Typdeklarationen schalten Daher wird diese Art von verschachtelten Bedingungen in unseren Programmen häufig vorkommen.
Wie in anderen Sprachen, Lua Bewerten Sie zuerst den Zustand der während, wenn die Bedingung falsch ist, endet die Schleife und andernfalls werden die folgenden Codezeilen ausgeführt und der Vorgang wiederholt, bis die Bedingung falsch ist. Sehen wir uns ein einfaches Beispiel an, um dies zu veranschaulichen:
local i = 1 while var1 [i] do print (var1 [i]) i = i + 1 end
Diese Aussage im Gegensatz zu der während ermöglicht es uns, den Code innerhalb der Bedingung zu wiederholen, bis er wahr ist, wobei sogar dieser Code mindestens einmal ausgeführt werden kann, da die Auswertung der Bedingung am Ende erfolgt, sehen wir uns ein Beispiel an:
Zeile wiederholen = os.read () bis Zeile ~ = "" print (Zeile)
In Bezug auf iterative Zyklen Pro, Lua hat zwei Varianten davon, die für numerisch und das generisch für. Schauen wir uns die Syntax der Zahl für an:
für var = exp1, exp2, exp3 endenDiese Schleife führt etwas für jeden Wert von aus var aus exp1 bis um exp2 mit exp3 als Wert, um var zu erhöhen oder zu verringern, wenn wir ihn nicht einschließen Lua geht standardmäßig davon aus, dass es nacheinander abläuft, sehen wir uns ein detaillierteres Beispiel dieser Zyklen an:
for var = 1, f (x) do print (var) end for var2 = 10,1, -1 do print (var2) endWie wir sehen, ist seine Anwendung recht einfach und ermöglicht es uns, die nützlichen iterativen Zyklen in unseren Programmen zu implementieren. Sehen wir uns nun die Syntax für die an generisch für:
for i, var in ipairs (array) drucken (var) endWas dieser Zyklus macht, ist die Funktion zu verwenden, die er uns gibt Lua Forderung ipairs, ein Iterator von Arrays, wobei i für jede Iteration einen Index annimmt, während var den diesem Index zugeordneten Wert erhält.
Wie wir die Aussagen darin sehen Lua Sie unterscheiden sich nicht wesentlich von anderen Sprachen, aber die Sprache fügt diese zusätzliche Einfachheit hinzu, um uns ein viel schnelleres Erlernen ihrer Syntax und eine viel effektivere Verwendung zu ermöglichen. Damit beenden wir dieses Tutorial, in dem wir die Aufgaben und Kontrollstrukturen innerhalb von . gelernt haben Lua, und fügt so eine weitere Wissensebene hinzu, wenn es um diese einfache, aber mächtige Sprache geht.