Takk for at du sendte din henvendelse! En av våre teammedlemmer vil kontakte deg straks.
Takk for at du sendte din bestilling! En av våre teammedlemmer vil kontakte deg straks.
Kursplan
Introduksjon til Lua
- En del historie
- Luas mål, egenskaper og ikke-mål
- Ressurser for Lua-dokumentasjon og tutorials
- Installering av Lua-tolker
- Oppsett og bruk av LuaRocks
Grunnleggende syntaks og semantikk
- Identifikatorer
- Kommentarer, blokkkommentarer
- Globale variabler og gjennomføring av strenghet
- Lokale variabler
- Selvstendige programmer, programmeringsargumenter
- Kompileringsenheter, stykker, uttrykk, semikoloner
Datatyper og datastrukturer
- Grunnleggende typer: nil, booleansk, nummer, streng
- Objekttyper: funksjon, brukerdata, tråd, tabell
- Referanser/objekter vs. grunnleggende verdier
- Betydeingen av tabeller i Lua
Introduksjon til tabeller og deres mangfoldighet
- Tabeller som et assosiativt array
- Tabeller som numeriske arrayer, sekvenser
Grunnleggende styringsstrukturer
- If then elseif else end
- Den while-sløyfen
- Den repeat-sløyfen
- Den enkle for-sløyfen
Feilhåndtering
- Returverdier vs. unntak
- Konvertering av en returverdi til et unntak
- Konvertering av et unntak til en returverdi
- Feilnivåer
Eksempelprogrammer
- Utregning av polynom
- Bredde-først-søk
- Tillegse øvelser
Mer om funksjoner
- Navngitte argumenter
- Objektorienterte kall
- Lukkede funksjoner
- Currying
- Halekall
- Multi-assignering og retur
- Varargs
Iteratører og co-routines
- Den generiske for-sløyfen
- Statløse vs. statfulle iteratører
- Forskjeller mellom iteratører og co-routines
Metatabeller og metametoder
- Set-eksempelet
- __tostring metametoden
- Aritmetiske metametoder
- __index, __newindex metametoder
- __len metametoden
Moduler og pakker
- Bruk av moduler
- Oppretting av moduler
- Organisering av moduler i pakker
Avanserte tabeller
- Tabeller for køer og stabler
- Tabeller som beskriver grafer
- Matriser som tabeller
- Lenkede lister som tabeller
- Strengbuffer
Metatabeller gjennom eksempler
- Proksier
- Skrivbeskyttet
- Memoisering
- Dynamisk programmering med memoisering
- Fibonacci-eksempelet
Miljøer
- Forholdet mellom globale variabler og miljøer
- Frie variabler
- _ENV-tabellen og _G-tabellen
Mer om moduler
- Forskjellige tilnærminger til å opprette moduler
- Moduler som endrer oppførsel
- Modulinitialisering og argumenter
- Bruk av miljøer for å implementere sikre moduler
Avanserte iteratører og co-routines
- Produsent, forbruker, filter
- Pakking av co-routines for å få iteratører
- Statløs iteratør for lenkede lister
Bidra til Økosystemet
- Opplasting av pakker til MoonRocks
Funksjonell paradigme i Lua
- Map-funksjonen
- Reduce/fold-funksjonen
Objektorientert programmering
- Forskjellige tilnærminger til OOP
- Forskjellige tilnærminger til arv
- Eksempler
En gjennomgang av Lua Standardbibliotekene
Kompilering
- Kompilering
- Eval
- Forholdet til miljøet
- Binære stykker
Søppelinnsamling
- Svekkede tabeller
- Finalizers, __gc metametoden
Lua bytecode og virtuell maskin
- Generering av bytecode fra kildekode
- Lesing og analyse av bytecode
- Kort tur gjennom kildekoden til Lua VM
C-moduler
- Kalling av C fra Lua
- Søkevei og lasting av C-moduler
Kalling av Lua fra C
- Stabelen
- Feilhåndtering
- Fortsettelser
Håndtering av Lua-verdier og -typer fra C
- Arrayer
- Strenger
- Brukerdata
- Metatabeller
- Objektorienterte kall
- Lett brukerdata
Minnehåndtering
- Allokerere
- GC API
Tråder i Lua
- Co-routines vs. tråder
- Ekte multitråd og Lua-stater
Krav
Kjennskap til minst ett annet programmeringsspråk. Programming erfaring. Eventuelt hvis du har kjennskap til andre skriptspråk, vil det gjøre det lettere å forstå Lua.
21 timer