Kursplan

Introduksjon til Lua

    Litt historie Luas mål, funksjoner og ikke-mål Ressurser for Lua dokumentasjon og veiledninger Installere Lua-tolken Sette opp og bruke LuaRocks

Grunnleggende syntaks og semantikk

    Identifikatorer Kommentarer, blokkkommentarer Globale variabler og håndheving av strenghet Lokale variabler Frittstående programmer, programargumenter Kompileringsenheter, biter, uttrykk, semikolon

Datatyper og datastrukturer

    Grunnleggende typer: null, boolsk, tall, streng Objekttyper: funksjon, brukerdata, tråd, tabell Referanser/objekter vs. grunnleggende verdier Viktigheten av tabeller i Lua

Introduksjon til bord og deres allsidighet

    Tabeller som en assosiativ matrise Tabeller som numeriske matriser, sekvenser

Grunnleggende kontrollstrukturer

    The if then elseif else end The while loop The repeat loop The simple for loop

Feilhåndtering

    Returverdier vs unntak Konvertering av en returverdi til et unntak Konvertering av et unntak til en returverdi Feilnivåer

Eksempel programmer

    Polynomevaluering Bredde først søk Tilleggsøvelser

Mer om funksjoner

    Navngitte argumenter Objektorienterte anrop Lukninger Currying Tail-anrop Flere tildelinger og retur Varargs

Iteratorer og co-rutiner

    Det generiske for loop Stateless vs stateful iterators Forskjeller mellom iteratorer og co-rutiner

Metatabeller og metametoder

    Setteksemplet __tostring-metametoden Aritmetiske metametoder __indeksen, __newindex-metametoden __len-metametoden

Moduler og pakker

    Bruke moduler Opprette moduler Organisere moduler i pakker

Avanserte tabeller

    Tabeller for køer og stabler Tabeller som beskriver grafer Matriser som tabeller Koblede lister som tabeller Strengbuffere

Metatables gjennom eksempler

    Proxies Readonly Memoization Dynamisk programmering med memoization Fibonacci-eksemplet

Miljøer

    Forholdet mellom globale variabler og miljøer Frie variabler _ENV-tabellen og _G-tabellen

Mer om moduler

    Ulike tilnærminger til å lage moduler Moduler som endrer atferden Modulinitialisering og argumenter Bruke miljøer til å implementere sikre moduler

Avanserte iteratorer og co-rutiner

    Produsent, forbruker, filter Innpakning av co-rutiner for å få iteratorer Statsløs iterator for koblede lister

Bidra til økosystemet

    Laster opp pakker til MoonRocks

Funksjonelt paradigme i Lua

    Kartfunksjonen Reduser/fold funksjonen

Objektorientert Programming

    Ulike tilnærminger til OOP Ulike tilnærminger til arv Eksempler

En gjennomgang av Lua Standard Libraries

Samling

    Compilation Eval Forholdet til miljøet Binære biter

Søppelsamling

    Svake tabeller Finalizers, __gc-metametoden

Lua bytekode og virtuell maskin

    Generer bytekode fra kildekode Lese og analysere bytekode Hurtig gjennomgang av kildekoden til Lua VM

C-moduler

    Anroper C fra Lua Search bane og lasting av C-moduler

Ringer Lua fra C

    Stabelfeilhåndteringen fortsetter

Håndtering av Lua verdier og typer fra C

    Arrays Strings Userdata Metatables Objektorienterte anrop Lette brukerdata

Minnehåndtering

    Allocators GC API

Tråder i Lua

    Ko-rutiner vs tråder Ekte multi-threading og Lua tilstander

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

Antall deltakere



Price per participant

Testimonials (5)

Relaterte kurs

Advanced Lua

14 timer

Lua Fundamentals

14 timer

OpenResty

7 timer

Torch for Machine and Deep Learning

21 timer

Introduction to Programming

35 timer

Linux Network Programming

14 timer

Clean Code

14 timer

Java Persistence with Hibernate

14 timer

Java Fundamentals for Android

14 timer

Unit Testing with JUnit

21 timer

Java Advanced

28 timer

Java fundamentals with Maven

28 timer

Java Advanced - one day

7 timer

Java Intermediate - one day

7 timer

Standard Java Security

14 timer

Related Categories