Innehållsförteckning
Lua Det är ett dynamiskt språk när det gäller datatyper och deras värden, det vill säga att det inte finns några definitioner av någon typ när man skapar en variabel och anger att det är en sträng, ett tal eller till och med en booleskt.Uttryck går hand i hand med värden, dessa låter oss utföra operationer med dem, som kan sträcka sig från aritmetiska, relationella och till och med villkorliga operationer för att ge dynamik till våra program, men innan vi går vidare till uttryck, låt oss se vilka typer av värden som vi äger i Lua och hur de fungerar inom språket.
I Lua Varje värde laddar sin egen typ, där vi kan hitta åtta olika typer av dessa: noll, booleskt, tal, sträng, användardata, funktion, tråd och tabell, var med funktionen typ () vi kan känna typnamnet för det angivna värdet. Låt oss se ett enkelt exempel på hur Lua tolka detta enligt typ ():
NollDetta är en typ av värde vars huvudsakliga egenskap ska skilja sig från andra värden. Som vi såg i den senaste självstudien har en global variabel värdet som standard noll och om vi vill eliminera det, tilldelar vi detta värde, vi kan till och med använda det för att representera frånvaron av ett användbart värde.
BooleanBoolska värden, liksom i resten av programmeringsspråken, har två värden, sanna och falska, men till skillnad från andra språk har denna typ av data inte en total domän över förhållanden eftersom alla kan representera ett villkor.
siffraDenna datatyp representerar både heltal och decimaler. Lua har inte en heltalstyp och behöver den inte sedan Lua det kan representera alla 32-bitars heltal utan avrundningsproblem, men det mest intressanta med språket är att vi kan kompilera det för att använda en annan typ, till exempel långa heltal eller floats, vilket är ganska användbart för fall där hårdvaran inte har stöd för decimaler.
SträngSträngarna in Lua De är en sekvens av tecken, de är värden som är oföränderliga, det vill säga att vi inte kan ändra ett tecken i strängen. De hanteras av det automatiska minnet för språket som resten av objekten och strängens tilldelning kan vara med dubbla eller enkla citattecken.
TabellTabellen datatyp implementerar en associativ array, som är en array som kan indexeras inte bara med siffror utan med strängar eller något annat språkvärde, förutom noll. Tabellerna har inte en fast storlek så vi kan inkludera så många element som vi vill och med dem kan vi representera moduler, paket och objekt lika. Slutligen är skapandet lika enkelt som att använda parenteser {} vid tabellinitialisering.
FunktionerFunktionerna i Lua de har ett ganska märkligt beteende, vi kan spara dem i variabler, skicka dem som argument till andra funktioner och returnera dem även som resultat, där Lua du kan kalla dessa funktioner skrivna både på själva språket och i C.
AnvändardataTyp av data användardata tillåter att lagra i variabler av Lua godtycklig information från C. Den har inga fördefinierade operationer på Lua, med undantag för uppdrags- och jämlikhetstester, där huvudfunktionen för denna typ är att representera nya typer som sådana skapade av en applikation eller ett bibliotek skrivet i C.
Som vi kan se skiljer sig typerna inte mycket från vad vi kan hitta på nuvarande språk, men det som är säkert är att enkelheten vi har att representera dem är mycket större, låt oss se vilken roll uttrycken har och hur vi kan använda dem med våra värderingar.
Aritmetiska operationer är oerhört viktiga för alla program och det är viktigt att veta hur man hanterar dem och vilka begränsningar som kan finnas på det språk vi använder. Lua den stöder de konventionella operatörer vi är vana vid: addition, subtraktion, multiplikation, division, exponential, procent och negation.
Låt oss se en enkel kod där vi visar användningen av vissa operatörer av Lua:
x = 8 + 5 y = 9 - 2 utskrifter (x * y% 0,01)Vi använder addition, subtraktion och division med 2 på resultatet av en multiplikationsoperation, låt oss se hur tolkens svar när vi kör vår kod genom konsolen:
FÖRSTORA
Lua som andra språk ger det oss relationsoperatorer som större än>, mindre än <, mindre än eller lika =, lika-lika == och negation ~ =. Vi ser att den enda som kanske skiljer sig är förnekelsen men efter att vi har vant oss vid det kommer det inte att finnas några problem med dess användning.
Alla dessa operatörer kan returnera sant eller falskt, där vi till och med kan tillämpa både jämställdhetsoperatören och negationsoperatören på två värden. Dessa jämförelser Lua det gör dem baserat på typen utöver andra faktorer, låt oss se i följande kod där jämförelsen görs baserat på samma objekt:
a = {}; a.x = 1; a.y = 0 b = {}; b.x = 1; b.y = 0 c = aOm vi jämför detsamma, ger resultatet av operationen oss att a är lika med c men att a skiljer sig från b, beror detta på att de är samma objekt. Dessutom måste vi vara mycket försiktiga när vi jämför olika typer, eftersom till exempel 6 skiljer sig från "6" och om vi gör något som "3" <"8" Lua det kommer att ge ett fel eftersom vi blandar strängarna.
De logiska operatörerna i Lua de är och och eller inte. När en jämförelse görs med dessa operatörer returneras det första argumentet om det är falskt, annars returneras det andra. Låt oss se en serie exempel i den interaktiva konsolen för att demonstrera det ovan nämnda.
FÖRSTORA
FÖRSTORA
Slutligen har vi konstruktörerna, som är uttryck som gör att vi kan skapa och initiera tabeller, den här funktionen är unik för Lua och det är en av dess mest mångsidiga och kraftfulla mekanismer. Vi kan använda en tom konstruktör utan problem med bara fästena {} som kommer att skapa en tom tabell som sådan. Dessa kan också initiera matriser eller listor, låt oss se ett exempel:
dagar = {"söndag", "måndag", "tisdag", "onsdag", "torsdag", "fredag", "lördag"}Här skapar vi en lista med veckodagarna och om vi vill komma åt dess element genom att ange index för samma som vi har, till exempel för att erhålla torsdag skulle det vara index nummer 5 eller söndag skulle det vara nummer 1, eftersom Lua Det initieras inte till noll som resten av språken, låt oss se hur det ser ut när vi kör det i vår konsol:
array = {x = 26, y = 67}
Men det är viktigt att för att komma åt dess värden refererar vi till indexet med dubbla viloteckningar, vi får värdet noll, vi ser vår funktion i den interaktiva konsolen: