Schulungsübersicht

Einführung in Lua

  • Ein bisschen Geschichte
  • Luas Ziele, Funktionen und Nichtziele
  • Ressourcen von Lua Dokumentation und Tutorials
  • Installieren des Lua-Interpreters
  • Einrichten und Verwenden von LuaRocks

Grundlegende Syntax und Semantik

  • Identifikatoren
  • Kommentare, Kommentare blockieren
  • Globale Variablen und Durchsetzung von Strenge
  • Lokale Variablen
  • Eigenständige Programme, Programmargumente
  • Kompilierungseinheiten, Chunks, Ausdrücke, Semikolons

Datentypen und Datenstrukturen

  • Grundtypen: Null, Boolescher Wert, Zahl, Zeichenfolge
  • Objekttypen: Funktion, Benutzerdaten, Thread, Tabelle
  • Referenzen/Objekte vs. Grundwerte
  • Die Bedeutung von Tabellen in Lua

Einführung in Tabellen und ihre Vielseitigkeit

  • Tabellen als assoziatives Array
  • Tabellen als numerische Arrays, Sequenzen

Grundlegende Kontrollstrukturen

  • Das if then elseif else-Ende
  • Die while-Schleife
  • Die Wiederholungsschleife
  • Die einfache for-Schleife

Fehlerbehandlung

  • Rückgabewerte vs. Ausnahmen
  • Konvertieren eines Rückgabewerts in eine Ausnahme
  • Konvertieren einer Ausnahme in einen Rückgabewert
  • Fehlerstufen

Beispielprogramme

  • Polynomauswertung
  • Breitensuche zuerst
  • Zusätzliche Übungen

Mehr über Funktionen

  • Benannte Argumente
  • Objektorientierte Aufrufe
  • Schließungen
  • Curry
  • Tail Calls
  • Mehrfache Zuweisung und Rückgabe
  • Varargs

Iteratoren und Co-Routinen

  • Die generische for-Schleife
  • Zustandslose vs. zustandsbehaftete Iteratoren
  • Unterschiede zwischen Iteratoren und Co-Routinen

Metatabellen und Metamethoden

  • Das gesetzte Beispiel
  • Die __tostring-Metamethode
  • Arithmetische Metamethoden
  • Die Metamethoden __index, __newindex
  • Die __len-Metamethode

Module und Pakete

  • Verwendung von Modulen
  • Module erstellen
  • Organisieren von Modulen in Paketen

Erweiterte Tabellen

  • Tische für Warteschlangen und Stapel
  • Tabellen, die Diagramme beschreiben
  • Matrizen als Tabellen
  • Verknüpfte Listen als Tabellen
  • String-Puffer

Metatabellen anhand von Beispielen

  • Proxys
  • Schreibgeschützt
  • Auswendiglernen
  • Dynamische Programmierung mit Memoisierung
  • Das Fibonacci-Beispiel

Umgebungen

  • Beziehung zwischen globalen Variablen und Umgebungen
  • Freie Variablen
  • Die _ENV-Tabelle und die _G-Tabelle

Mehr zu Modulen

  • Verschiedene Ansätze zur Modulerstellung
  • Module, die das Verhalten ändern
  • Modulinitialisierung und Argumente
  • Verwendung von Umgebungen zur Implementierung sicherer Module

Erweiterte Iteratoren und Co-Routinen

  • Produzent, Konsument, Filter
  • Co-Routinen einschließen, um Iteratoren zu erhalten
  • Zustandsloser Iterator für verknüpfte Listen

Beitrag zum Ökosystem

  • Hochladen von Paketen auf MoonRocks

Funktionsparadigma in Lua

  • Die Kartenfunktion
  • Die Funktion „Reduzieren/Falten“.

Objektorientiert Programming

  • Verschiedene Ansätze für OOP
  • Verschiedene Ansätze zur Vererbung
  • Beispiele

Eine exemplarische Vorgehensweise für die Lua Standardbibliotheken

Zusammenstellung

  • Zusammenstellung
  • Bewertung
  • Beziehung zur Umwelt
  • Binäre Blöcke

Müllabfuhr

  • Schwache Tische
  • Finalizer, die __gc-Metamethode

Lua Bytecode und virtuelle Maschine

  • Generieren von Bytecode aus Quellcode
  • Bytecode lesen und analysieren
  • Kurzer Rundgang durch den Quellcode der Lua VM

C-Module

  • Aufruf von C von Lua
  • Search Pfad und Laden von C-Modulen

Aufruf von Lua aus C

  • Der Stapel
  • Fehlerbehandlung
  • Fortsetzungen

Umgang mit Lua-Werten und -Typen aus C

  • Arrays
  • Saiten
  • Benutzerdaten
  • Metatabellen
  • Objektorientierte Aufrufe
  • Leichte Benutzerdaten

Speicherverwaltung

  • Allokatoren
  • GC-API

Threads in Lua

  • Co-Routinen vs. Threads
  • Echtes Multithreading und Lua-Zustände

Voraussetzungen

Vertrautheit mit mindestens einer weiteren Programmiersprache. Programming Erfahrung. Wenn Sie mit anderen Skriptsprachen vertraut sind, wird es Ihnen leichter fallen, Lua zu verstehen.

 21 Stunden

Teilnehmerzahl



Preis je Teilnehmer

Erfahrungsberichte (5)

Verwandte Kategorien