Návrh Školení

Úvod do Lua

  • Krátce o historii
  • Cíle, vlastnosti a nezájmy Lua
  • Zdroje dokumentace a tutoriálů k Lua
  • Instalace interpretru Lua
  • Nastavení a používání LuaRocks

Základní syntaxe a sémantika

  • Identifikátory
  • Komentáře, blokové komentáře
  • Globální proměnné a podporování striktnosti
  • Lokální proměnné
  • Samostatné programy, argumenty programu
  • Kompilace jednotek, části, výrazy, středníky

Datové typy a struktury dat

  • Základní typy: nil, boolean, number, string
  • Typy objektů: function, userdata, thread, table
  • Odkazy/objekty vs. základní hodnoty
  • Důležitost tabulek v Lua

Úvod do tabulek a jejich univerzálnosti

  • Tabulky jako asociativní pole
  • Tabulky jako číselné pole, sekvence

Základní řídicí struktury

  • Příkaz if then elseif else end
  • Cyklus while
  • Cyklus repeat
  • Jednoduchý cyklus for

Zpracování chyb

  • Návratové hodnoty vs. výjimky
  • Převod návratové hodnoty na výjimku
  • Převod výjimky na návratovou hodnotu
  • Úrovně chyb

Ukázkové programy

  • Hodnocení polynomů
  • Bredth-first hledání (prohlížení stromu v šířku)
  • Další cvičení

Více o funkcích

  • Jmenované argumenty
  • Objektově orientované volání
  • Zavřené funkce (closures)
  • Kurýrování (currying)
  • Hvostové volání (tail calls)
  • Víceprvková přiřazení a návraty
  • Parametry s proměnným počtem argumentů (varargs)

Iterátory a koprocesy

  • Generický cyklus for
  • Bezstavové vs. stavy s iterátory
  • Rozdíly mezi iterátory a koprocesy

Metaloady a metamythody

  • Příklad s množinou (set)
  • Metametoda __tostring
  • Aritmetické metamethody
  • Metamethody __index, __newindex
  • Metametoda __len

Moduly a balíčky

  • Použití modulů
  • Vytváření modulů
  • Seskupování modulů do balíčků

Objektově orientované programování

  • Základní stavební kameny OOP v Lua
  • Příklady

Diskuse o pokročilejších jazykových funkcích

  • Slabé tabulky (weak tables)
  • Finalizátory
  • Kompilace, vyhodnocování, načítání

Požadavky

Znalost alespoň jednoho dalšího programovacího jazyka. Programming zkušenost. Volitelně, pokud znáte jiné skriptovací jazyky, usnadní to pochopení Lua.

 14 hodiny

Počet účastníků


Cena za účastníka

Nadcházející kurzy

Související kategorie