Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Kursplan
Introduktion till Lua
- Lite historia
- Luas mål, funktioner och icke-mål
- Resurser för Lua dokumentation och handledning
- Installation av Lua-tolken
- Konfigurera och använda LuaStenar
Grundläggande syntax och semantik
- Identifierare
- Kommentarer, blockera kommentarer
- Globala variabler och upprätthållande av strikthet
- Lokala variabler
- Fristående program, programargument
- Sammanställningsenheter, bitar, uttryck, semikolon
Datatyper och datastrukturer
- Grundläggande typer: noll, boolean, nummer, sträng
- Objekttyper: funktion, användardata, tråd, tabell
- Referenser/objekt kontra grundläggande värderingar
- Vikten av tabeller i Lua
Introduktion till bord och deras mångsidighet
- Tabeller som en associativ array
- Tabeller som numeriska arrayer, sekvenser
Grundläggande kontrollstrukturer
- The if then elseif else slut
- While-slingan
- Upprepningsslingan
- Det enkla för loop
Felhantering
- Returvärden kontra undantag
- Konvertera ett returvärde till ett undantag
- Konvertera ett undantag till ett returvärde
- Felnivåer
Exempel på program
- Polynomutvärdering
- Utöka första sökningen
- Ytterligare övningar
Mer om funktioner
- Namngivna argument
- Objektorienterade samtal
- Stängningar
- Curry
- Svansanrop
- Flera uppdrag och retur
- Varargs
Iteratorer och samrutiner
- Det generiska för loop
- Statslösa kontra statliga iteratorer
- Skillnader mellan iteratorer och samrutiner
Metatabeller och metametoder
- Det fasta exemplet
- __tostring-metametoden
- Aritmetiska metametoder
- Metametoderna __index, __newindex
- __len-metametoden
Moduler och paket
- Använda moduler
- Skapa moduler
- Organisera moduler i paket
Avancerade tabeller
- Tabeller för köer och travar
- Tabeller som beskriver grafer
- Matriser som tabeller
- Länkade listor som tabeller
- Strängbuffertar
Metatables genom exempel
- Ombud
- Skrivskyddad
- Memoisering
- Dynamisk programmering med memoisering
- Fibonacci-exemplet
Miljöer
- Samband mellan globala variabler och miljöer
- Fria variabler
- Tabellen _ENV och tabellen _G
Mer om moduler
- Olika tillvägagångssätt för att skapa moduler
- Moduler som förändrar beteendet
- Modulinitiering och argument
- Använda miljöer för att implementera säkra moduler
Avancerade iteratorer och samrutiner
- Producent, konsument, filter
- Slå in ko-rutiner för att få iteratorer
- Statslös iterator för länkade listor
Att bidra till ekosystemet
- Laddar upp paket till MoonRocks
Funktionellt paradigm i Lua
- Kartfunktionen
- Minska/vik-funktionen
Objektorienterad Programming
- Olika förhållningssätt till OOP
- Olika synsätt på arv
- Exempel
En genomgång av standardbiblioteken Lua
Kompilering
- Kompilering
- Eval
- Relation med miljön
- Binära bitar
Skräp samling
- Svaga bord
- Finalizers, __gc-metametoden
Lua bytekod och virtuell maskin
- Genererar bytekod från källkoden
- Läsa och analysera bytecode
- Snabb rundtur i källkoden för Lua VM
C-moduler
- Ringer C från Lua
- Search väg och laddning av C-moduler
Ringer Lua från C
- Stacken
- Felhantering
- Fortsättningar
Hantera Lua värden och typer från C
- Matriser
- Strängar
- Användardata
- Metatables
- Objektorienterade samtal
- Lätt användardata
Minneshantering
- Tilldelare
- GC API
Trådar i Lua
- Samrutiner vs trådar
- Verklig multi-threading och Lua tillstånd
Krav
Bekanta med minst ett annat programmeringsspråk. Programming erfarenhet. Om du är bekant med andra skriptspråk, kommer det att göra det lättare att förstå Lua.
21 timmar