Typen, Werte und Ausdrücke in Lua

Lua ist eine dynamische Sprache in Bezug auf Datentypen und ihre Werte, dh es gibt keine Definitionen eines Typs, wenn eine Variable erstellt und angegeben wird, dass es sich um eine Zeichenfolge, eine Zahl oder sogar einen Booleschen Wert handelt.

Die Ausdrücke gehen Hand in Hand mit den Werten. Diese ermöglichen es uns, Operationen mit ihnen durchzuführen, die von arithmetischen, relationalen und sogar bedingten Operationen reichen können, um unseren Programmen Dynamik zu verleihen. Bevor wir jedoch mit den Ausdrücken weitermachen, wollen wir uns die Arten der Werte ansehen, die sie enthalten Wir haben in Lua und in welcher Form arbeiten sie in der Sprache.

Typen und Werte

In Lua lädt jeder Wert seinen eigenen Typ, in dem wir acht verschiedene Typen finden können: nil, boolean, number, string, userdata, function, thread und table , wobei wir mit der type () – Funktion den Namen des Typs der gegebener Wert. Schauen wir uns ein einfaches Beispiel an, wie Lua dies nach type () interpretiert:

types-values-expre-lua.jpg

Wie wir sehen, ist der Typ durch den Wert gegeben, der geladen wird, und die festgelegte Funktion hilft uns zu wissen, was es ist. Wir können sehen, dass selbst im letzten Fall der Variablen H das Ergebnis string ist, und das liegt daran, dass die type () -Funktion immer string ist . Da wir gesehen haben, wie Lua die Datentypen interpretiert, wollen wir uns jedes dieser Elemente genauer ansehen:

Nil
Dies ist ein Werttyp, dessen Haupteigenschaft sich von anderen Werten unterscheiden soll. Wie wir im letzten Lernprogramm gesehen haben, hat eine globale Variable standardmäßig den Wert Null. Wenn wir diesen Wert entfernen möchten, führen wir die Zuweisung dieses Werts durch und können ihn sogar verwenden, um das Fehlen eines nützlichen Werts darzustellen.

Boolean
Boolesche Werte wie in den übrigen Programmiersprachen haben zwei Werte, true und false, aber im Gegensatz zu anderen Sprachen hat dieser Datentyp keine Gesamtdomäne über Bedingungen, da jeder eine Bedingung darstellen kann.

Nummer
Dieser Datentyp repräsentiert sowohl Ganzzahlen als auch Dezimalzahlen. Lua hat keinen ganzen Wertetyp und benötigt ihn nicht, da Lua jede 32-Bit-Ganzzahl ohne Rundungsprobleme darstellen kann. Das Interessanteste an der Sprache ist jedoch, dass wir sie so kompilieren können, dass sie einen anderen Typ verwendet, z. B. lange Ganzzahlen oder Gleitkommazahlen. Dies ist sehr nützlich, wenn die Hardware keine Dezimalstellen unterstützt.

String
Die Zeichenfolge in Lua ist eine Folge von Zeichen. Dies sind Werte, die unveränderlich sind. Das heißt, wir können kein Zeichen in der Zeichenfolge ändern. Sie werden vom automatischen Speicher der Sprache wie die übrigen Objekte behandelt, und die Zuweisung der Zeichenfolge kann in doppelten oder einfachen Anführungszeichen erfolgen.

Tisch
Die Datentyp-Tabelle implementiert ein assoziatives Array, bei dem es sich um ein Array handelt, das nicht nur mit Zahlen, sondern auch mit Zeichenfolgen oder einem anderen Wert der Sprache, mit Ausnahme von nil, indiziert werden kann. Die Tabellen haben keine feste Größe, so dass wir so viele Elemente einfügen können, wie wir möchten, und mit ihnen können wir Module, Pakete und Objekte gleichermaßen darstellen. Schließlich ist seine Erstellung so einfach wie die Verwendung der Klammern {} bei der Initialisierung der Tabelle.

Funktionen
Die Funktionen in Lua haben ein ganz besonderes Verhalten, wir können sie in Variablen speichern, sie als Argumente an andere Funktionen übergeben und sie als Ergebnisse zurückgeben, wobei Lua diese Funktionen sowohl in der Sprache als auch in C schreiben kann.

Benutzerdaten
Der Datentyp userdata ermöglicht das Speichern von beliebigen Informationen von C in beliebigen Lua- Variablen. Er verfügt über keine vordefinierten Operationen in Lua , mit Ausnahme der Zuordnungs- und Gleichheitsprüfungen, bei denen die Hauptfunktion dieses Typs darin besteht, neue Typen als solche darzustellen, die von a erstellt wurden Anwendung oder eine Bibliothek in C. geschrieben

Da wir sehen, dass die Typen nicht viel von dem widersprechen, was wir in aktuellen Sprachen finden können, aber was sicher ist, dass die Einfachheit, mit der wir sie darstellen müssen, viel größer ist, wollen wir die Rolle der Ausdrücke sehen und wie wir sie mit unseren verwenden können werte.

See also  Erstellen Sie Filter aus dem Posteingang von Google Mail

Rechenoperationen

Arithmetische Operationen sind für jedes Programm äußerst wichtig, und es ist wichtig zu wissen, wie damit umgegangen wird und welche Einschränkungen in der von uns verwendeten Sprache bestehen können. Lua unterstützt die herkömmlichen Operatoren, an die wir gewöhnt sind: Addition, Subtraktion, Multiplikation, Division, Exponential, Prozentsatz und Negation.

Schauen wir uns dann einen einfachen Code an, in dem wir die Verwendung einiger Lua- Operatoren demonstrieren:

 x = 8 + 5 y = 9 - 2 print (x * und% 0,01) 

Wir verwenden Addition, Subtraktion und Division zwischen 2 als Ergebnis einer Multiplikationsoperation. Sehen wir uns an, wie der Interpreter reagiert, wenn wir unseren Code über die Konsole ausführen:

Typen-Werte-expre-lua-2.jpg
Wie wir sehen, unterscheidet sich Lua in Bezug auf die Rechenoperationen nicht wesentlich von den übrigen Sprachen, aber seine Einfachheit beim Schreiben von Code macht es für die Entwicklung von Programmen recht einfach.

Vergleichsoperatoren

Lua gibt uns wie andere Sprachen Operatorenbeziehungen wie größer als>, kleiner als <, kleiner oder gleich <= oder größer oder gleich> =, gleich-gleich == und Negation ~ =. Wir sehen, dass das Einzige, was sich vielleicht unterscheidet, die Negation ist, aber nachdem wir uns daran gewöhnt haben, wird es keine Probleme mit ihrer Verwendung geben.

Alle diese Operatoren können true oder false zurückgeben, wobei wir sogar sowohl den Gleichheitsoperator als auch den Negationsoperator auf zwei Werte anwenden können. Diese Lua- Vergleiche basieren neben anderen Faktoren auf dem Typ. Sehen wir uns im folgenden Code an, wo der Vergleich basierend auf demselben Objekt durchgeführt wird:

 a = {}; ax = 1; ay = 0 b = {}; bx = 1; um = 0 c = a 

Wo, wenn wir sie vergleichen, das Ergebnis der Operation uns ergibt, dass a gleich c ist, aber dass a verschieden ab ist, dies für ein Subjekt, von dem sie dasselbe Objekt sind. Außerdem müssen wir sehr vorsichtig sein, wenn wir verschiedene Typen vergleichen, da beispielsweise 6 von “6” abweicht und wenn wir so etwas wie “3” <“8” machen, wird Lua einen Fehler melden, da wir die Zeichenfolgen mischen.

See also  So ändern und steuern Sie die Musik in Xiaomi Mi Smart Band 4

Logische Operatoren

Die logischen Operatoren in Lua sind und oder und nicht. Wenn ein Vergleich mit diesen Operatoren durchgeführt wird, wird das erste Argument zurückgegeben, falls es falsch ist. Im umgekehrten Fall wird das zweite zurückgegeben. Schauen wir uns eine Reihe von Beispielen in der interaktiven Konsole an, um das oben Genannte zu demonstrieren.

Typen-Werte-expre-lua-3.jpg

Verkettung

Um die Verkettung in Lua durchzuführen, müssen Sie die Syntax in Bezug auf die anderen Sprachen ein wenig ändern, aber auf die gleiche Weise ist es ganz einfach, aber Lua geht immer ein bisschen weiter und wenn es eine Zahl gibt und eine Operation von Verkettung es konvertiert es in eine Zeichenfolge, lassen Sie uns zwei einfache Beispiele für diese Operation sehen:

Typen-Werte-expre-lua-4.jpg
Wie wir für den ersten Fall sehen, wird die Operation ohne Probleme ausgeführt, und für den zweiten Fall, dass wir Zahlen haben, konvertiert Lua diese automatisch in Zeichenketten. Beachten Sie, dass Zeichenfolgen unveränderlich sind. Bei dieser Operation wird immer eine neue Zeichenfolge erstellt, ohne dass Änderungen an ihrem Operanden vorgenommen werden.

Bauherren

Schließlich haben wir die Konstruktoren, Ausdrücke, mit denen wir Tabellen erstellen und initialisieren können. Diese Funktion ist einzigartig in Lua und einer der vielseitigsten und leistungsfähigsten Mechanismen. Wir können einen leeren Konstruktor problemlos nur mit den Klammern {} verwenden, wodurch eine leere Tabelle als solche erstellt wird. Diese können auch Fixes oder Listen initialisieren, sehen wir uns ein Beispiel an:

 dias = {"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"} 

Hier erstellen wir eine Liste mit den Wochentagen und wenn wir auf deren Elemente zugreifen möchten, geben Sie den Index desselben an, den wir haben. Zum Beispiel wäre Donnerstag die Indexnummer 5 oder Sonntag die Nummer 1, da Lua nicht initialisiert wird Null wie der Rest der Sprachen, lassen Sie uns sehen, wie es aussieht, wenn wir es in unserer Konsole ausführen:

See also  Schnelle Funktionen mit dem mobilen Assistenten von Google Android erstellen

tipos-valores-expre-lua-5.jpg

Wir können auch eigene assoziative Arrays mit dem Schlüsseltyp value erstellen:

fix = {x = 26, y = 67}

Um jedoch auf ihre Werte zugreifen zu können, müssen wir mit doppelten Anführungszeichen den Wert nil auf den Index verweisen. Sehen wir uns unsere Operation in der interaktiven Konsole an:

Typen-Werte-expre-lua-6.jpg

Damit beenden wir das Tutorial, in dem wir sehen konnten, dass Lua seine Einfachheit auf alle Kanten ausdehnt, die es bilden, von den dynamischen Typen, die es handhabt, der einfachen Art, Zuweisungen vorzunehmen, die Verwaltung relationaler und logischer Operatoren sowie die Bereitstellung von Werkzeugen Sehr nützlich als Verkettung und Konstrukteur, um unsere Erfahrung mit Sprache so angenehm und angenehm wie möglich zu machen.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *