Innehållsförteckning
I tidigare tutorials såg vi hur Lua tillåter hantering av både värden och typer på ett dynamiskt sätt, alltid sticker ut för sin enkelhet och mångsidighet när du utför dessa operationer.Men detta är inte allt Lua erbjuder i form av enkelhet, det stöder konventionellt deklarationer som vi kan hitta på språk som i C eller PascalNär dessa deklarationer inkluderar både uppdrag och kontrollstrukturer kan vi till och med snubbla på några okonventionella sätt som flera uppdrag och lokala deklarationer.
Uppdragen i Lua De är extremt enkla, och de arbetar för att ändra värdet på en variabel vid en viss tid i vårt program, låt oss se ett enkelt exempel med den interaktiva konsolen för Lua, som vi kan ange genom att placera det reserverade ordet lua I terminalen:
Lua du kan till och med justera antalet värden för antalet variabler som finns, till exempel om listan över värden är mindre än listan över variabler får de extra variablerna värdetypen noll som standard som dess värden, låt oss se ett exempel på denna process:
Förutom globala variabler, Lua Det stöder lokala variabler som, till skillnad från globala, har ett begränsat omfång, vilket är beroende av blocket där de har deklarerats, låt oss se hur vi deklarerar en lokal variabel:
x = 10 lokal i = 1 medan i <= x gör lokal x = i * 2 utskrift (x) i = i + 1 slut om i> 20 så lokal xx = 20 utskrift (x + 2) annars skriv ut (x) ände skriva ut (x)Om vi kör detsamma i vår terminal ser vi hur resultatet kanske inte är vad vi förväntar oss, och det beror på att vi har olika block där vi använder variablerna, låt oss se resultatet:
gör lokal var1 = 16 lokal var2 = var1 + 20 x = 5 y = x + var1 ände - Här slutar omfattningen av var1 och var2 print (x, y) print (var1, var2)När vi kör det i vår terminal kommer vi att se att variablerna x och y visas utan problem eftersom de är globala, men för var1 och var2 slutar deras omfattning med blocket avsluta, låt oss se:
KontrollstrukturerLiksom resten av programmeringsspråken, Lua ger oss en uppsättning kontrollstrukturer som vi kan använda i våra program med hjälp av de välkända om att hantera förhållanden och medan, upprepa Y för för iterativa slingor, där utom upprepa som har den uttryckliga terminatorn fram tills och de andra som slutar med slutet.
Som i de flesta programmeringsspråk deklarationen om kontrollerar ett tillstånd och utför delen av sedan eller delen av annan, där det senare kan vara valfritt, låt oss se en uppsättning av dessa villkor enligt våra program:
om var1 <0 då var1 = 0 ände om var1 max rader visar sedan () rader = 0 slutHär har vi tre typer av operationer, den grundläggande med sedan, använder retur för att returnera ett värde enligt villkoret och en lite mer komplett kodbit som kallar en funktion. Förutom detta kan vi skriva om kapslad med annat, vilket sparar oss från att behöva använda flera slutar, låt oss se hur det ser ut:
om operation == " +" då resultat = a + b elseif operation == " -" då resultat = a - b elseif operation == " *" då resultat = a * b elseif operation == "/" sedan resultat = a / b else fel ("Ogiltig operation") slutDet är viktigt att notera att detta inte bara är mer optimalt utan också nödvändigt sedan dess Lua har inte typdeklarationerna växla så den här typen av kapslade förhållanden kommer att vara ganska vanliga i våra program.
Som på andra språk, Lua utvärdera först tillståndet för medan, om villkoret är falskt, slutar slingan och annars körs följande kodrader och processen upprepas tills villkoret är falskt, låt oss se ett enkelt exempel för att illustrera detta:
lokal i = 1 medan var1 [i] skriver ut (var1 [i]) i = i + 1 slut
Detta påstående till skillnad från medan tillåter oss att upprepa koden inuti villkoret tills det är sant, där även denna kod kan köras minst en gång sedan utvärderingen av villkoret görs i slutet, låt oss se ett exempel:
upprepa rad = os.read () tills rad ~ = "" skriv ut (rad)
Angående iterativa cykler för, Lua har två varianter av det, för numeriska och den generiskt för. Låt oss titta på syntaxen för det numeriska för:
för var = exp1, exp2, exp3 gör slutDenna loop kommer att köra något för varje värde av var från exp1 fram tills exp2 använder sig av exp3 som värdet för att öka var eller minska det, om vi inte inkluderar det Lua antar som standard att det går en efter en, låt oss se ett mer detaljerat exempel på dessa cykler:
för var = 1, f (x) skriv ut (var) slutet för var2 = 10,1, -1 gör utskrift (var2) ändeSom vi ser är applikationen ganska enkel och låter oss implementera användbara iterativa cykler i våra program, låt oss nu se syntaxen för generiskt för:
för i, var i ipairs (array) skriv ut (var) endVad denna cykel gör är att använda den funktion som den ger oss Lua ringa upp ipar, som är en iterator av matriser, där i för varje iteration tar ett index, medan var erhåller det värde som är associerat med det indexet.
Som vi ser uttalandena inom Lua De skiljer sig inte mycket från andra språk, men språket lägger till den extra enkelheten för att ge oss en mycket snabbare inlärning av dess syntax och en mycket mer effektiv användning. Med detta avslutar vi denna handledning, där vi lärde oss uppdragen och kontrollstrukturerna inom Lua, vilket lägger till ytterligare ett lager av kunskap när det gäller detta enkla men kraftfulla språk.