Typen, waarden en uitdrukkingen in Lua

Inhoudsopgave
Lua Het is een dynamische taal als het gaat om gegevenstypen en hun waarden, dat wil zeggen, er zijn geen definities van welk type dan ook bij het maken van een variabele en het specificeren dat het een tekenreeks, een getal of zelfs een Boolean is.
Expressies gaan hand in hand met waarden, deze stellen ons in staat om er bewerkingen mee uit te voeren, die kunnen variëren van rekenkundige, relationele en zelfs voorwaardelijke bewerkingen om dynamiek aan onze programma's te geven, maar laten we, voordat we verder gaan met expressies, eens kijken naar de soorten waarden die wij bezitten in Lua en hoe ze werken binnen taal.
In Lua Elke waarde laadt zijn eigen type, waarin we acht verschillende typen hiervan kunnen vinden: nul, boolean, getal, string, gebruikersgegevens, functie, thread en tabel, waar met de functie typ () we kunnen de typenaam van de gegeven waarde kennen. Laten we een eenvoudig voorbeeld bekijken van hoe Lua interpreteer dit volgens typ ():

Zoals we zien, wordt het type gegeven door de waarde die het laadt en de aangewezen functie helpt ons te weten wat het is, we kunnen zien dat zelfs in het laatste geval van de variabele H het resultaat string is en dit komt omdat de functie typ () is altijd een string. Sinds we zagen hoe Lua de gegevenstypen interpreteren, laten we elk van deze in detail bekijken:
nulDit is een type waarde waarvan de hoofdeigenschap moet verschillen van andere waarden. Zoals we in de vorige tutorial zagen, heeft een globale variabele standaard de waarde nul en als we het willen elimineren, kennen we deze waarde toe, we kunnen het zelfs gebruiken om de afwezigheid van een bruikbare waarde weer te geven.
BooleaansBooleaanse waarden hebben, net als in de rest van de programmeertalen, twee waarden, waar en onwaar, maar in tegenstelling tot andere talen heeft dit type gegevens geen totaal domein over voorwaarden, aangezien elke een voorwaarde kan vertegenwoordigen.
NummerDit gegevenstype vertegenwoordigt zowel gehele getallen als decimalen. Lua heeft geen integer waardetype en heeft het niet nodig, omdat Lua het kan elk 32-bits geheel getal vertegenwoordigen zonder afrondingsproblemen, maar het meest interessante aan de taal is dat we het kunnen compileren om een ​​ander type te gebruiken, zoals lange gehele getallen of floats, wat best handig is voor gevallen waarin de hardware geen ondersteuning voor decimalen.
DraadDe snaren erin Lua Ze zijn een reeks tekens, het zijn waarden die onveranderlijk zijn, dat wil zeggen dat we een teken in de tekenreeks niet kunnen wijzigen. Ze worden afgehandeld door het automatische geheugen van de taal zoals de rest van de objecten en de toewijzing van de string kan met dubbele of enkele aanhalingstekens.
TafelHet tabelgegevenstype implementeert een associatieve array, een array die niet alleen kan worden geïndexeerd met getallen, maar ook met tekenreeksen of een andere taalwaarde, behalve nul. De tabellen hebben geen vaste grootte, dus we kunnen zoveel elementen opnemen als we willen en daarmee kunnen we zowel modules, pakketten als objecten vertegenwoordigen. Ten slotte is het maken ervan net zo eenvoudig als het gebruik van de haakjes {} bij tafelinitialisatie.
FunctiesDe functies in Lua ze hebben een heel eigenaardig gedrag, we kunnen ze opslaan in variabelen, ze als argumenten doorgeven aan andere functies en ze zelfs als resultaten retourneren, waarbij Lua je kunt deze functies zowel in de taal zelf als in C aanroepen.
GebruikersgegevensHet type gegevens gebruikersgegevens maakt het mogelijk om op te slaan in variabelen van Lua willekeurige informatie van C. Het heeft geen vooraf gedefinieerde bewerkingen op Lua, met uitzondering van de toewijzings- en gelijkheidstests, waarbij de belangrijkste functie van dit type is om nieuwe typen als zodanig weer te geven die zijn gemaakt door een toepassing of een bibliotheek die is geschreven in C.
Zoals we kunnen zien, verschillen de typen niet veel van wat we in de huidige talen kunnen vinden, maar wat zeker is, is dat de eenvoud die we hebben om ze weer te geven veel groter is, laten we dan eens kijken naar de rol van uitdrukkingen en hoe we ze kunnen gebruiken met onze waarden.
Rekenkundige bewerkingen zijn uiterst belangrijk voor elk programma en het is belangrijk om te weten hoe u ermee om moet gaan en welke beperkingen er kunnen bestaan ​​in de taal die we gebruiken. Lua het ondersteunt de conventionele operatoren die we gewend zijn: optellen, aftrekken, vermenigvuldigen, delen, exponentieel, percentage en ontkenning.
Laten we eens kijken naar een eenvoudige code waarin we het gebruik van enkele operatoren van . demonstreren Lua:
 x = 8 + 5 y = 9 - 2 afdrukken (x * y% 0,01)
We gebruiken optellen, aftrekken en delen door 2 op het resultaat van een vermenigvuldigingsbewerking, laten we eens kijken hoe de tolk reageert wanneer we onze code door de console laten lopen:

VERGROTEN

Zoals we kunnen zien, verschilt Lua niet veel van de rest van de talen voor rekenkundige bewerkingen, maar de eenvoud van het schrijven van code maakt het vrij gemakkelijk te hanteren voor programma-ontwikkeling.
Lua net als andere talen geeft het ons relationele operatoren zoals groter dan>, kleiner dan <, kleiner dan of gelijk aan =, gelijk-gelijk == en ontkenning ~ =. We zien dat de enige die misschien verschilt de ontkenning is, maar nadat we eraan gewend zijn geraakt, zullen er geen problemen zijn met het gebruik ervan.
Al deze operatoren kunnen waar of onwaar retourneren, waarbij we zelfs zowel de gelijkheidsoperator als de ontkenningsoperator op twee waarden kunnen toepassen. deze vergelijkingen Lua het doet ze op basis van het type naast andere factoren, laten we in de volgende code kijken waar de vergelijking wordt gemaakt op basis van hetzelfde object:
 een = {}; a.x = 1; a.y = 0 b = {}; b.x = 1; b.y = 0 c = a
Als we hetzelfde vergelijken, geeft het resultaat van de operatie ons dat a gelijk is aan c maar dat a anders is dan b, dit komt doordat ze hetzelfde object zijn. Bovendien moeten we heel voorzichtig zijn bij het vergelijken van verschillende typen, omdat bijvoorbeeld 6 anders is dan "6" en als we iets doen als "3" <"8" Lua het geeft een foutmelding omdat we de snaren aan het mixen zijn.
De logische operatoren in Lua ze zijn de en, of en niet. Wanneer een vergelijking wordt gemaakt met behulp van deze operators, wordt het eerste argument geretourneerd als het onwaar is, anders wordt het tweede geretourneerd. Laten we een reeks voorbeelden bekijken in de interactieve console om het bovengenoemde te demonstreren.

VERGROTEN

Aaneenschakeling uitvoeren in Lua is door de dubbele punt, het verandert de syntaxis een beetje met betrekking tot andere talen, maar op dezelfde manier is het vrij eenvoudig, maar Lua Het gaat altijd een beetje verder en als het een getal vindt en er is een aaneenschakeling, converteert het het naar een tekenreeks, laten we twee eenvoudige voorbeelden van deze bewerking bekijken:

VERGROTEN

Zoals we voor het eerste geval zien, wordt de bewerking probleemloos uitgevoerd, en voor het tweede geval hebben we cijfers, Lua converteert ze automatisch naar string. Het is belangrijk om te onthouden dat strings onveranderlijk zijn, dus deze bewerking creëert altijd een nieuwe string zonder enige wijzigingen aan de operand aan te brengen.
Ten slotte hebben we de constructors, dit zijn expressies waarmee we tabellen kunnen maken en initialiseren, deze functie is uniek voor Lua en het is een van de meest veelzijdige en krachtige mechanismen. We kunnen zonder problemen een lege constructor gebruiken met alleen de haakjes {} die als zodanig een lege tabel zal creëren. Deze kunnen ook arrays of lijsten initialiseren, laten we een voorbeeld bekijken:
 dagen = {"zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"}
Hier maken we een lijst met de dagen van de week en als we toegang willen hebben tot de elementen ervan door de index op te geven van dezelfde die we hebben, bijvoorbeeld om donderdag te verkrijgen, zou het indexnummer 5 zijn of zondag zou het nummer 1 zijn sinds Lua Het initialiseert niet op nul zoals de rest van de talen, laten we eens kijken hoe het eruit ziet wanneer we het in onze console uitvoeren:

We kunnen ook onze eigen associatieve arrays van het sleutelwaardetype maken:
reeks = {x = 26, y = 67}
Maar het is belangrijk dat we, om toegang te krijgen tot de waarden ervan, verwijzen naar de index met dubbele restaanhalingstekens, we zullen de waarde nul verkrijgen, we zien onze bewerking in de interactieve console:

Hiermee beëindigen we de tutorial, waar we dat konden zien Lua breidt zijn eenvoud uit naar alle randen waaruit het bestaat, van de dynamische typen die het verwerkt, de eenvoudige manier om toewijzingen te maken, het omgaan met relationele en logische operatoren, en biedt ons ook uiterst nuttige hulpmiddelen zoals aaneenschakelingen en constructors om onze de taal zo prettig en aangenaam mogelijk te ervaren.Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een ​​positief punt te geven

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave