Indholdsfortegnelse
I tidligere tutorials så vi hvordan Lua tillader håndtering af både værdier og typer på en dynamisk måde, altid skiller sig ud for sin enkelhed og alsidighed, når du udfører disse operationer.Men det er ikke alt Lua tilbyder i form af enkelhed, det understøtter konventionelt erklæringer, som vi kan finde på sprog som i C eller PascalHvor disse erklæringer omfatter både opgaver og kontrolstrukturer, kan vi endda snuble over nogle ukonventionelle måder som flere opgaver og lokale erklæringer.
Opgaverne i Lua De er ekstremt enkle, og de arbejder på at ændre værdien af en variabel på et bestemt tidspunkt i vores program, lad os se et enkelt eksempel ved hjælp af den interaktive konsol af Lua, som vi kan indtaste ved at placere det reserverede ord lua I terminalen:
Lua du kan endda justere antallet af værdier for antallet af tilstedeværende variabler, for eksempel hvis værdilisten er mindre end listen over variabler, får de ekstra variabler værditypen nul som standard som værdier, lad os se et eksempel på denne proces:
Ud over globale variabler, Lua Det understøtter lokale variabler, der i modsætning til globale har et begrænset omfang, som er afhængigt af blokken, hvor de er blevet erklæret, lad os se, hvordan vi erklærer en lokal variabel:
x = 10 lokal i = 1 mens i <= x gør lokal x = i * 2 udskriv (x) i = i + 1 ende hvis i> 20 så lokal xx = 20 udskrivning (x + 2) ellers udskriv (x) ende print (x)Hvis vi udfører det samme i vores terminal, vil vi se, hvordan resultatet muligvis ikke er, hvad vi forventer, og det er fordi vi har forskellige blokke, hvor vi bruger variablerne, lad os se resultatet:
gør lokal var1 = 16 lokal var2 = var1 + 20 x = 5 y = x + var1 ende - Her slutter omfanget af var1 og var2 print (x, y) print (var1, var2)Når vi udfører det i vores terminal, vil vi se, at variablerne x og y vises uden problemer, fordi de er globale, men for var1 og var2 slutter deres omfang med blokken slut, Lad os se:
KontrolstrukturerLigesom resten af programmeringssprog, Lua giver os et sæt kontrolstrukturer, som vi kan bruge i vores programmer ved hjælp af de velkendte hvis at håndtere forhold og mens, gentage Y til for iterative sløjfer, hvor undtagen gentage som har den eksplicitte terminator så længe og de andre slutter med ende.
Som i de fleste programmeringssprog erklæringen hvis kontrollerer en tilstand og udfører den del af derefter eller den del af andet, hvor sidstnævnte kan være valgfri, lad os se et sæt af disse betingelser som set i vores programmer:
hvis var1 <0 så var1 = 0 ende hvis var1 max linjer så viser () linjer = 0 endeHer har vi tre typer operationer, den grundlæggende med derefter, ved hjælp af retur for at returnere en værdi i henhold til betingelsen og et lidt mere komplet stykke kode, der kalder en funktion. Udover dette kan vi skrive hvis indlejret ved hjælp af ellers, hvilket sparer os for at skulle bruge flere ender, lad os se, hvordan det ser ud:
hvis operation == " +" så resultat = a + b elseif operation == " -" derefter resultat = a - b elseif operation == " *" derefter resultat = a * b elseif operation == "/" derefter resultat = a / b else fejl ("Ugyldig drift") slutDet er vigtigt at bemærke, at dette ikke kun er mere optimalt, men også nødvendigt siden Lua ikke har typedeklarationer kontakt så denne type indlejrede forhold vil være ret almindelig i vores programmer.
Som på andre sprog, Lua først vurdere tilstanden af mens, hvis betingelsen er falsk, slutter sløjfen, og ellers udføres følgende kodelinjer, og processen gentages, indtil betingelsen er falsk, lad os se et enkelt eksempel for at illustrere dette:
lokal i = 1 mens var1 [i] udskriver (var1 [i]) i = i + 1 ende
Denne erklæring i modsætning til mens giver os mulighed for at gentage koden inde i betingelsen, indtil den er sand, hvor selv denne kode kan udføres mindst én gang, siden evalueringen af tilstanden er udført i slutningen, lad os se et eksempel:
gentag linje = os.read () indtil linje ~ = "" print (linje)
Med hensyn til iterative cyklusser til, Lua har to varianter af den, den for numerisk og generisk for. Lad os se på syntaksen i det numeriske for:
for var = exp1, exp2, exp3 slutterDenne sløjfe vil udføre noget for hver værdi af var fra eksp1 så længe eksp2 ved brug af eksp3 som værdien for at øge var eller reducere den, hvis vi ikke inkluderer den Lua antager som standard, at det går en efter en, lad os se et mere detaljeret eksempel på disse cyklusser:
for var = 1, f (x) udskriv (var) ende for var2 = 10,1, -1 udskriv (var2) endeDa vi ser, at applikationen er ganske enkel og giver os mulighed for at implementere de nyttige iterative cyklusser i vores programmer, lad os nu se syntaksen for generisk for:
for i, var i ipairs (array) print (var) endHvad denne cyklus gør, er at bruge den funktion, den giver os Lua opkald ipairs, som er en iterator af arrays, hvor jeg for hver iteration tager et indeks, mens var opnår den værdi, der er knyttet til dette indeks.
Som vi ser udsagnene indenfor Lua De adskiller sig ikke meget fra andre sprog, men sproget tilføjer den ekstra enkelhed til at give os en meget hurtigere læring af dens syntaks og en meget mere effektiv brug. Med dette afslutter vi denne vejledning, hvor vi lærte opgaverne og kontrolstrukturer inden for Lua, og tilføjer dermed endnu et lag af viden, når det kommer til dette enkle, men kraftfulde sprog.