Lua-sheriffen, del 1- Historia och utmärkande egenskaper

Så var det dags att åter tygla programmeringshästen och rida ut på nya kodäventyr! Ny bild och allt! 😀

Lua-sheriffen

Innan vi går in på någon faktisk programmering ska vi gå igenom skriptspråkets historia, samt vad som utmärker det jämfört med andra språk!

Historia

Grunden till Lua började läggas 1993 av Roberto Ierusalimschy, Waldemar Celes och Luiz Henrique de Figueiredo. Det skapades som ett komplement till C/C++ med tanken att förenkla vissa delar av programmeringsarbetet (t.ex. har det högre abstraktionsnivå, dynamisk typning och automatisk minneshantering) och är gjort för att kunna bäddas in i andra programmeringsspråk. Mycket har hänt sedan starten och Lua har växt till ett av världens populäraste skriptspråk. Några produkter där det används idag för att utöka funktionaliteten är Adobe Lightroom, World of Warcraft och Z-wave-kontrollers som Fibaro Home Center 2, Vera, med flera.

Utmärkande egenskaper

Lua är ”lättvikt” (får plats på en diskett) och har därmed relativt begränsad funktionalitet i grundutförandet, men exekveras å andra sidan snabbare än exempelvis Python, som vi gått igenom tidigare. Dessutom har det bättre hantering av strängar och datatyper med dynamisk storlek än vad C har.

Lua bryr sig inte om indentering, som Python gör, vilket gör att det kan vara lättare att koda rätt men svårare att läsa koden. Man behöver heller inte använda sig av ”måsvingar” eller semikolon så koden är i teorin lika lättläst som Python-kod. Det går däremot att använda semikolon, om man väldigt gärna vill.

Variabelnamn kan innehålla ”a-z”, ”A-Z”, siffror och understreck (”_”). Däremot är det smart att undvika namn som börjar med understreck och därefter har några versaler, då denna typ av variabelnamn är reserverad för speciell användning i Lua.

Om du vill testa de små kodsnuttarna som demonstreras i bloggserien utan att installera Lua, finns en online-interpretator här. Skriv bara in koden du vill köra och klicka på ”Run”!

Lua har, som tidigare nämnt, dynamisk typning. Det innebär att man kan skapa variabler och sedan tilldela dem godtyckliga värden. Exempel:

Skillnaden mellan print och io.write är att print också skriver ut en radbrytning på slutet, medan io.write fortsätter skriva på samma rad så länge man inte anropar t.ex. ”io.write(‘\n’)” (\n är ”ny rad”). En variabel som inte fått något värde returnerar ”nil”, vilket kan liknas vid ”null” i Java (dvs inget värde).

Som synes har vi också slängt in en kommentar högst upp för att demonstrera hur man gör sådana. En kommentar är text som interpretatorn ”hoppar över” vid körning och i Lua kommenterar man antingen ut en rad med ”–” eller ett helt stycke genom att inleda med ”–[[” och avsluta med ”–]]”, så här:

Kommentarer är bra om man har dåligt minne eller förväntar sig att någon annan ska försöka förstå koden i framtiden 🙂

En första funktion

Fakultet” är en simpel matematisk funktion som är populär som ett tidigt exempel för att illustrera hur ett språk är uppbyggt. Detta har vi också gjort i vår Python-introduktion!

Här använder vi oss av rekursion, som vi gått igenom tidigare. Detta då vi anropar om funktionen med (n – 1) tills vi når 1. Som synes används ”end” för att påtala att något är slut, både för if-satsen och för själva funktionen.

En ”rolig grej” i Lua är att man kan sätta en variabel till en funktion, för att på så vis döpa om den:

Denna kod gör precis samma sak som ett anrop till fakultet(4).

Om du vill provköra denna kod, kom ihåg att du måste avsluta med ett anrop till funktionen där du också skriver ut resultatet, exempelvis ”print (fakultet(4))”.

Så vad har vi lärt oss idag?

  • Hur man kan provköra kod online, utan att installera Lua.
  • Vilka variabelnamn som är godkända.
  • Hur man skriver ut data till konsollen, och vad skillnaden är på ”print()” och ”io.write()”.
  • Vad kommentarer är, samt hur man kommenterar ut en enstaka rad respektive ett helt stycke.
  • Hur man skapat en enkel funktion med rekursion.

I nästa avsnitt ska vi gå igenom lite smidiga knep när man arbetar med strängar! Ses då 🙂

Kommentera