Typer, verdier og uttrykk i Lua

Innholdsfortegnelse
Lua Det er et dynamisk språk når det gjelder datatyper og verdiene deres, det vil si at det ikke er noen definisjoner av noen type når du oppretter en variabel og angir at det er en streng, et tall eller til og med en boolsk.
Uttrykk går hånd i hånd med verdier, disse lar oss utføre operasjoner med dem, som kan variere fra aritmetiske, relasjonelle og til og med betingede operasjoner for å gi dynamikk til programmene våre, men før vi går videre til uttrykk, la oss se hvilke typer verdier som vi eier i Lua og hvordan de fungerer innenfor språket.
I Lua Hver verdi laster inn sin egen type, der vi kan finne åtte forskjellige typer av disse: null, boolsk, tall, streng, brukerdata, funksjon, tråd og tabell, hvor med funksjonen type () vi kan kjenne typenavnet til den gitte verdien. La oss se et enkelt eksempel på hvordan Lua tolke dette i henhold til type ():

Som vi ser typen er gitt av verdien den lastes inn og den angitte funksjonen hjelper oss å vite hva det er, kan vi se at selv i det siste tilfellet av variabelen H er resultatet streng og dette er fordi funksjonen type () er alltid streng. Siden vi så hvordan Lua tolke datatypene, la oss se nærmere på hver av disse:
NilDette er en type verdi hvis hovedegenskap skal være forskjellig fra andre verdier. Som vi så i den siste opplæringen, har en global variabel verdien som standard null og hvis vi vil eliminere den, tildeler vi denne verdien, vi kan til og med bruke den til å representere fraværet av en nyttig verdi.
BoolskBoolske verdier, som i resten av programmeringsspråkene, har to verdier, sanne og usanne, men i motsetning til andre språk har ikke denne typen data et totalt domene over forhold siden noen kan representere en tilstand.
AntallDenne datatypen representerer både hele tall og desimaler. Lua har ikke en heltallstype og trenger den ikke siden Lua det kan representere alle 32-biters heltall uten avrundingsproblemer, men det mest interessante med språket er at vi kan kompilere det for å bruke en annen type, for eksempel lange heltall eller flyter, noe som er ganske nyttig i tilfeller der maskinvaren ikke har støtte for desimaler.
StringStrengene inn Lua De er en sekvens av tegn, de er verdier som er uforanderlige, det vil si at vi ikke kan endre et tegn i strengen. De håndteres av det automatiske minnet til språket som resten av objektene, og tildelingen av strengen kan være med doble eller enkle anførselstegn.
BordTabellen datatype implementerer en assosiativ matrise, som er en matrise som kan indekseres ikke bare med tall, men med strenger eller annen språkverdi, unntatt null. Bordene har ikke en fast størrelse, så vi kan inkludere så mange elementer vi vil, og med dem kan vi representere moduler, pakker og objekter. Til slutt er opprettelsen like enkel som å bruke brakettene {} ved initialisering av bord.
FunksjonerFunksjonene i Lua de har en ganske særegen oppførsel, vi kan lagre dem i variabler, sende dem som argumenter til andre funksjoner og returnere dem selv som resultater, hvor Lua du kan kalle disse funksjonene skrevet både på selve språket og i C.
BrukerdataDatatypen brukerdata gjør det mulig å lagre i variabler av Lua vilkårlig informasjon fra C. Den har ingen forhåndsdefinerte operasjoner på Lua, med unntak av oppgaven og likestillingstester, der hovedfunksjonen til denne typen er å representere nye typer som sådan opprettet av en applikasjon eller et bibliotek skrevet i C.
Som vi kan se, skiller typene ikke mye fra det vi kan finne på dagens språk, men det som er sikkert er at enkelheten vi har for å representere dem er mye større, så la oss se uttrykkets rolle og hvordan vi kan bruke dem med våre verdier.
Aritmetiske operasjoner er ekstremt viktige for ethvert program, og det er viktig å vite hvordan de skal håndteres og hvilke begrensninger som kan eksistere på språket vi bruker. Lua den støtter de konvensjonelle operatørene vi er vant til: addisjon, subtraksjon, multiplikasjon, divisjon, eksponentiell, prosent og negasjon.
La oss se en enkel kode der vi demonstrerer bruken av noen operatører av Lua:
 x = 8 + 5 y = 9 - 2 utskrifter (x * y% 0,01)
Vi bruker addisjon, subtraksjon og divisjon med 2 på resultatet av en multiplikasjonsoperasjon, la oss se hvordan tolkerens svar når vi kjører koden vår gjennom konsollen:

FORSTØRRE

Som vi kan se, skiller Lua seg ikke mye fra resten av språkene for regneoperasjoner, men enkelheten for å skrive kode gjør det ganske enkelt å håndtere for programutvikling.
Lua som andre språk gir det oss relasjonsoperatorer som større enn>, mindre enn <, mindre enn eller lik =, like-like == og negasjon ~ =. Vi ser at den eneste som kanskje er forskjellig er fornektelsen, men etter at vi har blitt vant til det, vil det ikke være noen problemer med bruken.
Alle disse operatørene kan returnere true eller false, hvor vi til og med kan bruke både likhetsoperatøren og negasjonsoperatoren på to verdier. Disse sammenligningene Lua det gjør dem basert på typen i tillegg til andre faktorer, la oss se i følgende kode hvor sammenligningen er gjort basert på det samme objektet:
 a = {}; a.x = 1; a.y = 0 b = {}; b.x = 1; b.y = 0 c = a
Hvor hvis vi sammenligner det samme, gir resultatet av operasjonen oss at a er lik c, men at a er forskjellig fra b, skyldes dette at de er det samme objektet. I tillegg må vi være veldig forsiktige når vi sammenligner forskjellige typer, siden for eksempel 6 er forskjellig fra "6" og hvis vi gjør noe som "3" <"8" Lua det vil gi en feil siden vi blander strengene.
De logiske operatørene i Lua de er og og eller ikke. Når en sammenligning gjøres med disse operatørene, vil det første argumentet returneres hvis det er usant, ellers vil det andre bli returnert. La oss se en rekke eksempler i den interaktive konsollen for å demonstrere det nevnte.

FORSTØRRE

For å utføre sammenkobling i Lua er gjennom tykktarmen, endrer det syntaksen litt med hensyn til andre språk, men på samme måte er det ganske enkelt, men Lua Det går alltid litt lenger, og hvis det finner et tall og det er en sammenkoblingsoperasjon, konverterer det det til en streng, la oss se to enkle eksempler på denne operasjonen:

FORSTØRRE

Som vi ser for det første tilfellet, utføres operasjonen uten problemer, og for det andre tilfellet har vi tall, Lua konverterer dem automatisk til streng. Det er viktig å huske at strenger er uforanderlige, så denne operasjonen lager alltid en ny streng uten å gjøre noen endringer i operanden.
Til slutt har vi konstruktørene, som er uttrykk som lar oss lage og initialisere tabeller, denne funksjonen er unik for Lua og det er en av de mest allsidige og kraftfulle mekanismene. Vi kan bruke en tom konstruktør uten problemer med bare parentesene {} som vil lage et tomt bord som sådan. Disse kan også initialisere matriser eller lister, la oss se et eksempel:
 dager = {"søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"}
Her lager vi en liste med ukedagene, og hvis vi ønsker å få tilgang til elementene ved å spesifisere indeksen til det samme vi har, for eksempel for å få torsdag, ville det være indeksnummer 5 eller søndag ville det være tallet 1, siden Lua Det initialiseres ikke til null som resten av språkene, la oss se hvordan det ser ut når vi kjører det i konsollen vår:

Vi kan også lage våre egne assosiative matriser av nøkkelverditypen:
array = {x = 26, y = 67}
Men det er viktig at for å få tilgang til verdiene vi refererer til indeksen med doble hviletilbud, vil vi få verdien null, vi ser vår operasjon i den interaktive konsollen:

Med dette avslutter vi opplæringen, der vi kunne se det Lua utvider sin enkelhet til alle kantene som komponerer den, fra de dynamiske typene den håndterer, den enkle måten å utføre oppgaver på, håndteringen av relasjonelle og logiske operatører, samt gir oss ekstremt nyttige verktøy som sammenkoblinger og konstruktører for å lage våre erfaring med språket så hyggelig og hyggelig som mulig.Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave