Kurzusleírás

Bevezetés a Luába

  • Egy kis történelem
  • A Lua céljai, jellemzői és nem céljai
  • A Lua dokumentáció és oktatóanyagok forrásai
  • A Lua interpreter telepítése
  • A LuaRocks beállítása és használata

Alapszintaxis és szemantika

  • Azonosítók
  • Megjegyzések, blokk megjegyzések
  • Globális változók és a szigorúság kényszerítése
  • Helyi változók
  • Önálló programok, program argumentumok
  • Fordítási egységek, darabok, kifejezések, pontosvesszők

Adattípusok és adatszerkezetek

  • Alaptípusok: nil, boolean, szám, sztring
  • Objektumtípusok: függvény, userdata, szál, tábla
  • Hivatkozások/objektumok vs. alaptípusok
  • A táblák jelentősége a Luában

Bevezetés a táblákba és sokoldalúságuk

  • Táblák mint asszociatív tömbök
  • Táblák mint numerikus tömbök, sorozatok

Alapvető vezérlési szerkezetek

  • Az if then elseif else end
  • A while ciklus
  • A repeat ciklus
  • Az egyszerű for ciklus

Hibakezelés

  • Visszatérési értékek vs. kivételek
  • Visszatérési érték átalakítása kivétellé
  • Kivétel átalakítása visszatérési értékké
  • Hibaszintek

Példaprogramok

  • Polinom kiértékelése
  • Szélességi keresés
  • További gyakorlatok

További információk a függvényekről

  • Névvel ellátott argumentumok
  • Objektumorientált hívások
  • Zárások
  • Currying
  • Farokhívások
  • Többszörös értékadás és visszatérés
  • Varargs

Iterátorok és ko-rutinok

  • A generikus for ciklus
  • Állapotmentes vs. állapotfüggő iterátorok
  • Különbségek iterátorok és ko-rutinok között

Metatáblák és metódusok

  • A halmaz példa
  • A __tostring metódus
  • Aritmetikai metódusok
  • A __index, __newindex metódusok
  • A __len metódus

Modulok és csomagok

  • Modulok használata
  • Modulok létrehozása
  • Modulok csomagokba szervezése

Haladó táblakezelés

  • Táblák sorok és veremekhez
  • Gráfok leírása táblákkal
  • Mátrixok táblákként
  • Láncolt listák táblákként
  • Karakterlánc pufferek

Metatáblák példákon keresztül

  • Proxyk
  • Csak olvasható
  • Memorizáció
  • Dinamikus programozás memorizációval
  • A Fibonacci példa

Környezetek

  • Kapcsolat a globális változók és a környezetek között
  • Szabad változók
  • A _ENV tábla és a _G tábla

További információk a modulokról

  • Különböző megközelítések modulok létrehozására
  • Modulok, amelyek megváltoztatják a viselkedést
  • Modul inicializálás és argumentumok
  • Környezetek használata biztonságos modulok implementálásához

Haladó iterátorok és ko-rutinok

  • Termelő, fogyasztó, szűrő
  • Ko-rutinok becsomagolása iterátorokká
  • Állapotmentes iterátor láncolt listákhoz

Hozzájárulás az ökoszisztémához

  • Csomagok feltöltése a MoonRocks-ra

Funkcionális paradigma a Luában

  • A map függvény
  • A reduce / fold függvény

Objektumorientált programozás

  • Különböző megközelítések az OOP-hez
  • Különböző megközelítések az öröklődéshez
  • Példák

Bemutató a Lua Standard Könyvtárakról

Fordítás

  • Fordítás
  • Eval
  • Kapcsolat a környezettel
  • Bináris darabok

Szemetegyüjtés

  • Gyenge táblák
  • Finalizálók, a __gc metódus

Lua bytecode és virtuális gép

  • Bytecode generálása forráskódból
  • Bytecode olvasása és elemzése
  • Gyors bemutató a Lua VM forráskódjáról

C modulok

  • C hívása a Luából
  • Keresési útvonal és C modulok betöltése

Lua hívása C-ből

  • A verem
  • Hibakezelés
  • Folytatások

Lua értékek és típusok kezelése C-ből

  • Tömbök
  • Karakterláncok
  • Userdata
  • Metatáblák
  • Objektumorientált hívások
  • Könnyű userdata

Memóriakezelés

  • Memóriafoglalók
  • GC API

Szálak a Luában

  • Ko-rutinok vs. szálak
  • Valós több szálúság és Lua állapotok

Követelmények

Ismeret legalább egy másik programozási nyelvről. Programozási tapasztalat. Opcionálisan, ha ismerős más szkriptnyelvek, az megkönnyíti a Lua megértését.

 21 Órák

Résztvevők száma


Ár per résztvevő

Közelgő kurzusok

Rokon kategóriák