Typer, værdier og udtryk i Lua

Indholdsfortegnelse
Lua Det er et dynamisk sprog, når det kommer til datatyper og deres værdier, det vil sige, at der ikke er nogen definitioner af nogen type, når man opretter en variabel og angiver, at det er en streng, et tal eller endda en boolsk.
Udtryk går hånd i hånd med værdier, disse giver os mulighed for at udføre operationer med dem, som kan variere fra aritmetiske, relationelle og endda betingede operationer til at give dynamik til vores programmer, men før vi går videre til udtryk, lad os se de typer værdier, der vi ejer i Lua og hvordan de fungerer inden for sprog.
I Lua Hver værdi indlæser sin egen type, hvor vi kan finde otte forskellige typer af disse: nul, boolsk, tal, streng, brugerdata, funktion, tråd og tabel, hvor med funktionen type () vi kan kende typenavnet på den givne værdi. Lad os se et enkelt eksempel på hvordan Lua fortolke dette i henhold til type ():

Da vi ser, er typen givet af den værdi, den indlæser, og den udpegede funktion hjælper os med at vide, hvad det er, vi kan se, at selv i det sidste tilfælde af variablen H er resultatet streng, og det er fordi funktionen type () er altid streng. Siden vi så hvordan Lua fortolke datatyperne, lad os se nærmere på hver af disse:
NilDette er en type værdi, hvis hovedegenskab skal være forskellig fra andre værdier. Som vi så i den sidste vejledning, har en global variabel som standard værdien nul og hvis vi vil fjerne den, tildeler vi denne værdi, vi kan endda bruge den til at repræsentere fraværet af en nyttig værdi.
BoolskeBoolske værdier, som i resten af ​​programmeringssprogene, har to værdier, sand og falsk, men i modsætning til andre sprog har denne type data ikke et totalt domæne over betingelser, da alle kan repræsentere en betingelse.
NummerDenne datatype repræsenterer både hele tal og decimaler. Lua har ikke en heltalsværditype og har ikke brug for det, siden Lua det kan repræsentere ethvert 32-bit heltal uden afrundingsproblemer, men det mest interessante ved sproget er, at vi kan kompilere det til at bruge en anden type, f.eks. lange heltal eller floats, hvilket er ganske nyttigt i tilfælde, hvor hardwaren ikke har støtte til decimaler.
SnorStrengene i Lua De er en sekvens af tegn, de er værdier, der er uforanderlige, det vil sige, at vi ikke kan ændre et tegn i strengen. De håndteres af den automatiske hukommelse af sproget ligesom resten af ​​objekterne, og tildelingen af ​​strengen kan være med dobbelte eller enkelte anførselstegn.
BordTabellen datatype implementerer en associativ matrix, som er en matrix, der kan indekseres ikke kun med tal, men med strenge eller en anden sprogværdi, undtagen nul. Tabellerne har ikke en fast størrelse, så vi kan inkludere så mange elementer, som vi ønsker, og med dem kan vi repræsentere moduler, pakker og objekter ens. Endelig er dets oprettelse lige så enkel som at bruge parenteserne {} ved initialisering af bordet.
FunktionerFunktionerne i Lua de har en ganske ejendommelig adfærd, vi kan gemme dem i variabler, sende dem som argumenter til andre funktioner og returnere dem selv som resultater, hvor Lua du kan kalde disse funktioner skrevet både på selve sproget og i C.
BrugerdataDatatypen brugerdata gør det muligt at gemme i variabler af Lua vilkårlig information fra C. Den har ingen foruddefinerede operationer på Lua, med undtagelse af opgaven og ligestillingstest, hvor hovedfunktionen for denne type er at repræsentere nye typer som sådan oprettet af en applikation eller et bibliotek skrevet i C.
Som vi kan se, adskiller typerne sig ikke meget fra det, vi kan finde på nuværende sprog, men det er sikkert, at den enkelhed, vi har til at repræsentere dem, er meget større, så lad os se udtryksrollen og hvordan vi kan bruge dem med vores værdier.
Aritmetiske operationer er ekstremt vigtige for ethvert program, og det er vigtigt at vide, hvordan man håndterer dem, og hvilke begrænsninger der kan eksistere i det sprog, vi bruger. Lua den understøtter de konventionelle operatører, vi er vant til: addition, subtraktion, multiplikation, division, eksponentiel, procentdel og negation.
Lad os derefter se en simpel kode, hvor vi demonstrerer brugen af ​​nogle operatører af Lua:
 x = 8 + 5 y = 9 - 2 print (x * y% 0,01)
Vi bruger addition, subtraktion og division med 2 på resultatet af en multiplikationsoperation, lad os se, hvordan tolken svarer, når vi kører vores kode gennem konsollen:

FORSTØRRE

Som vi kan se, adskiller Lua sig ikke meget fra resten af ​​sprogene til aritmetiske operationer, men dets enkelhed til at skrive kode gør det ganske let at håndtere til programudvikling.
Lua ligesom andre sprog giver det os relationelle operatører som større end>, mindre end <, mindre end eller lige =, lige-lige == og negation ~ =. Vi ser, at den eneste, der måske er forskellig, er benægtelsen, men efter at vi har vænnet os til det, vil der ikke være problemer med brugen.
Alle disse operatører kan returnere sandt eller falsk, hvor vi endda kan anvende både ligestillingsoperatøren og negationsoperatoren på to værdier. Disse sammenligninger Lua det gør dem baseret på typen ud over andre faktorer, lad os se i følgende kode, hvor sammenligningen foretages baseret på det samme objekt:
 a = {}; a.x = 1; a.y = 0 b = {}; b.x = 1; b.y = 0 c = a
Hvor hvis vi sammenligner det samme, giver resultatet af operationen os, at a er lig med c, men at a er forskellig fra b, skyldes det, at de er det samme objekt. Derudover skal vi være meget forsigtige, når vi sammenligner forskellige typer, da f.eks. 6 er forskellig fra "6", og hvis vi gør noget som "3" <"8" Lua det vil give en fejl, da vi blander strengene.
De logiske operatorer i Lua de er det og, eller og ikke. Når der foretages en sammenligning ved hjælp af disse operatorer, returneres det første argument, hvis det er falsk, ellers returneres det andet. Lad os se en række eksempler i den interaktive konsol for at demonstrere det førnævnte.

FORSTØRRE

For at udføre sammenkædning i Lua er gennem tyktarmen, ændrer det syntaksen lidt med hensyn til andre sprog, men på samme måde er det ganske enkelt, men Lua Det går altid lidt længere, og hvis det finder et tal, og der er en sammenkædningsoperation, konverterer det det til en streng, lad os se to enkle eksempler på denne operation:

FORSTØRRE

Som vi ser for det første tilfælde, udføres operationen uden problemer, og for det andet tilfælde har vi tal, Lua konverterer dem automatisk til streng. Det er vigtigt at huske, at strenge er uforanderlige, så denne operation skaber altid en ny streng uden at foretage ændringer af dens operand.
Endelig har vi konstruktørerne, som er udtryk, der giver os mulighed for at oprette og initialisere tabeller, denne funktion er unik for Lua og det er en af ​​dens mest alsidige og kraftfulde mekanismer. Vi kan bruge en tom konstruktør uden problemer med kun beslagene {} som vil oprette en tom tabel som sådan. Disse kan også initialisere arrays eller lister, lad os se et eksempel:
 dage = {"søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"}
Her opretter vi en liste med ugens dage, og hvis vi ønsker at få adgang til dens elementer ved at angive indekset for det samme, vi har, for eksempel for at opnå torsdag ville det være indeksnummer 5 eller søndag ville det være nummer 1, siden Lua Det initialiseres ikke til nul som resten af ​​sprogene, lad os se, hvordan det ser ud, når vi kører det i vores konsol:

Vi kan også oprette vores egne associative arrays af nøgleværditypen:
array = {x = 26, y = 67}
Men det er vigtigt, at for at få adgang til dets værdier henviser vi til indekset med dobbelte hviletilbud, vi får værdien nul, vi ser vores operation i den interaktive konsol:

Hermed afslutter vi selvstudiet, hvor vi kunne se det Lua udvider sin enkelhed til alle kanter, der sammensætter den, fra de dynamiske typer, den håndterer, den enkle måde at lave opgaver på, håndteringen af ​​relationelle og logiske operatører, samt giver os ekstremt nyttige værktøjer såsom sammenkædninger og konstruktører til at lave vores opleve sproget så behageligt og behageligt som muligt.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave