Inhoudsopgave
In eerdere tutorials hebben we gezien hoe Lua maakt het mogelijk om zowel waarden als typen op een dynamische manier te verwerken, waarbij het altijd opvalt door zijn eenvoud en veelzijdigheid bij het uitvoeren van deze bewerkingen.Maar dit is niet alles Lua biedt in termen van eenvoud, het ondersteunt conventioneel verklaringen die we kunnen vinden in talen als in C of PascalWaar deze verklaringen zowel toewijzingen als controlestructuren omvatten, kunnen we zelfs enkele onconventionele manieren tegenkomen, zoals meerdere toewijzingen en lokale verklaringen.
De opdrachten in Lua Ze zijn uiterst eenvoudig, en ze werken om de waarde van een variabele op een bepaald moment in ons programma te wijzigen, laten we een eenvoudig voorbeeld bekijken met behulp van de interactieve console van Lua, die we kunnen invoeren door het gereserveerde woord te plaatsen lua In de terminal:
Lua je kunt zelfs het aantal waarden aanpassen voor het aantal aanwezige variabelen, bijvoorbeeld als de lijst met waarden kleiner is dan de lijst met variabelen, krijgen de extra variabelen het waardetype nul standaard als zijn waarden, laten we een voorbeeld van dit proces bekijken:
Naast globale variabelen, Lua Het ondersteunt lokale variabelen die, in tegenstelling tot globale, een beperkte reikwijdte hebben, die afhankelijk is van het blok waarin ze zijn gedeclareerd, laten we eens kijken hoe we een lokale variabele declareren:
x = 10 lokaal i = 1 while i <= x doe lokaal x = i * 2 print (x) i = i + 1 end if i> 20 then local xx = 20 print (x + 2) else print (x) end afdrukken (x)Als we hetzelfde in onze terminal uitvoeren, zullen we zien hoe het resultaat misschien niet is wat we verwachten, en dit komt omdat we verschillende blokken hebben waarin we de variabelen gebruiken, laten we het resultaat bekijken:
do local var1 = 16 local var2 = var1 + 20 x = 5 y = x + var1 end - Hier eindigt het bereik van var1 en var2 print (x, y) print (var1, var2)Wanneer we het in onze terminal uitvoeren, zullen we zien dat de variabelen x en y zonder enig probleem worden weergegeven omdat ze globaal zijn, maar voor var1 en var2 eindigt hun bereik met het blok einde maken, laten we kijken:
Controle structurenNet als de rest van de programmeertalen, Lua biedt ons een reeks controlestructuren die we in onze programma's kunnen gebruiken, met behulp van de bekende indien om te gaan met omstandigheden en terwijl, herhalen Y voor voor iteratieve lussen, waarbij behalve herhalen die de expliciete terminator heeft tot en de anderen eindigen met einde.
Zoals in de meeste programmeertalen de verklaring indien controleert een voorwaarde en voert het deel van de . uit dan of het deel van anders, waar de laatste optioneel kan zijn, laten we een reeks van deze voorwaarden bekijken zoals te zien in onze programma's:
if var1 <0 then var1 = 0 end if var1 max lines then show () lines = 0 endHier hebben we drie soorten bewerkingen, de basis met de dan, met return om een waarde te retourneren volgens de voorwaarde en een iets completer stuk code dat een functie aanroept. Daarnaast kunnen we schrijven indien genest met behulp van anders, waardoor we niet meerdere moeten gebruiken loopt af, laten we eens kijken hoe het eruit ziet:
if operatie == "+" dan resultaat = a + b elseif operatie == "-" dan resultaat = a - b elseif operatie == "*" dan resultaat = a * b elseif operatie == "/" dan resultaat = a / b else fout ("Ongeldige bewerking") endHet is belangrijk op te merken dat dit niet alleen meer optimaal is, maar ook noodzakelijk omdat Lua heeft niet de typeverklaringen schakelaar dus dit soort geneste voorwaarden zal heel gewoon zijn in onze programma's.
Net als in andere talen, Lua evalueer eerst de toestand van de terwijl, als de voorwaarde onwaar is, eindigt de lus en anders worden de volgende coderegels uitgevoerd en wordt het proces herhaald totdat de voorwaarde onwaar is, laten we een eenvoudig voorbeeld bekijken om dit te illustreren:
local i = 1 while var1 [i] do print (var1 [i]) i = i + 1 end
Deze verklaring in tegenstelling tot de terwijl stelt ons in staat om de code binnen de voorwaarde te herhalen totdat deze waar is, waarbij zelfs deze code minstens één keer kan worden uitgevoerd sinds de evaluatie van de voorwaarde aan het einde is gedaan, laten we een voorbeeld bekijken:
herhaal regel = os.read () tot regel ~ = "" print (regel)
Met betrekking tot iteratieve cycli voor, Lua heeft er twee varianten van, de voor numeriek en de generiek voor. Laten we eens kijken naar de syntaxis van het numerieke voor:
voor var = exp1, exp2, exp3 eindigenDeze lus zal iets uitvoeren voor elke waarde van var van exp1 tot exp2 gebruik makend van exp3 als de waarde om var te verhogen of te verlagen, als we het niet opnemen Lua gaat er standaard van uit dat het één voor één gaat, laten we een meer gedetailleerd voorbeeld van deze cycli bekijken:
voor var = 1, f (x) do print (var) end voor var2 = 10,1, -1 do print (var2) endZoals we zien, is de toepassing ervan vrij eenvoudig en kunnen we de nuttige iteratieve cycli in onze programma's implementeren. Laten we nu eens kijken naar de syntaxis voor de generiek voor:
voor i, var in ipairs (array) do print (var) endWat deze cyclus doet, is de functie gebruiken die het ons geeft Lua telefoongesprek ipairs, wat een iterator van arrays is, waarbij i voor elke iteratie een index neemt, terwijl var de waarde verkrijgt die bij die index hoort.
Zoals we de verklaringen binnen zien, Lua Ze verschillen niet veel van andere talen, maar de taal voegt die extra eenvoud toe om ons een veel snellere kennis van de syntaxis en een veel effectiever gebruik te geven. Hiermee sluiten we deze tutorial af, waar we de opdrachten en besturingsstructuren binnen hebben geleerd Lua, waardoor een nieuwe kennislaag wordt toegevoegd als het gaat om deze eenvoudige maar krachtige taal.