Kurzusleírás

Bevezetés a Lua-ba

  • Egy kis történelem
  • Lua góljai, szereplései és nem góljai
  • A Lua dokumentáció és oktatóanyagok forrásai
  • A Lua tolmács telepítése
  • A LuaRocks beállítása és használata

Alapvető szintaxis és szemantika

  • Azonosítók
  • Megjegyzések, megjegyzések blokkolása
  • Globális változók és a szigorúság érvényesítése
  • Lokális változók
  • Önálló programok, program argumentumok
  • Összeállítási egységek, darabok, kifejezések, pontosvesszők

Adattípusok és adatstruktúrák

  • Alaptípusok: nulla, logikai érték, szám, karakterlánc
  • Objektumtípusok: függvény, felhasználói adatok, szál, táblázat
  • Hivatkozások/objektumok vs. alapértékek
  • A táblázatok jelentősége a Lua-ban

A táblázatok bemutatása és sokoldalúságuk

  • A táblázatok asszociatív tömbként
  • Táblázatok, mint numerikus tömbök, sorozatok

Alapvető vezérlési struktúrák

  • A ha akkor elseif else vége
  • A while ciklus
  • Az ismétlési hurok
  • Az egyszerű for ciklus

Hibakezelés

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

Példa programok

  • Polinomiális értékelés
  • Szélesség első keresés
  • További gyakorlatok

Bővebben a funkciókról

  • Megnevezett érvek
  • Objektumorientált hívások
  • Lezárások
  • Currying
  • Tail hívások
  • Többszörös hozzárendelés és visszaküldés
  • Varargs

Iterátorok és társrutinok

  • Az általános for ciklus
  • Állapotmentes vs állapottartó iterátorok
  • Az iterátorok és a társrutinok közötti különbségek

Metatáblázatok és metamódszerek

  • A beállított példa
  • A __tostring metamódszer
  • Aritmetikai metamódszerek
  • Az __index, __newindex metamódszerek
  • A __len metamódszer

Modulok és csomagok

  • Modulok használata
  • Modulok készítése
  • Modulok csomagokba rendezése

Haladó táblázatok

  • Táblázatok a sorokhoz és a halmokhoz
  • Grafikonokat leíró táblázatok
  • Mátrixok mint táblázatok
  • Hivatkozott listák táblázatként
  • String pufferek

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

  • Proxyk
  • Csak olvasható
  • Memoizáció
  • Dinamikus programozás memoizálással
  • Fibonacci példa

Környezetek

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

Bővebben a modulokról

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

Fejlett iterátorok és társrutinok

  • Termelő, fogyasztó, szűrő
  • Tárrutinok burkolása iterátorok beszerzéséhez
  • Állapot nélküli iterátor a hivatkozott listákhoz

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

  • Csomagok feltöltése a MoonRocks-ba

Funkcionális paradigma a Lua-ban

  • A térkép funkció
  • A kicsinyítés/hajtás funkció

Objektumorientált Programming

  • Az OOP különböző megközelítései
  • Az öröklődés különböző megközelítései
  • Példák

A Lua Standard Libraries bemutatása

Összeállítás

  • Összeállítás
  • Eval
  • Kapcsolat a környezettel
  • Bináris darabok

Szemétgyüjtés

  • Gyenge asztalok
  • Véglegesítők, a __gc meta-módszer

Lua bájtkód és virtuális gép

  • Bájtkód előállítása forráskódból
  • Bájtkód olvasása és elemzése
  • Rövid bemutató a Lua virtuális gép forráskódjáról

C modulok

  • C hívása innen: Lua
  • Search a C modulok elérési útja és betöltése

Lua hívása C-ről

  • A verem
  • Hibakezelés
  • Folytatások

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

  • Tömbök
  • Húrok
  • Felhasználói adat
  • Metatáblázatok
  • Objektumorientált hívások
  • Könnyű felhasználói adatok

Memóriakezelés

  • Allokátorok
  • GC API

Szálak itt: Lua

  • Társrutinok vs szálak
  • Valódi többszálú és Lua állapot

Követelmények

Legalább egy másik programozási nyelv ismerete. Programming tapasztalat. Opcionálisan, ha ismeri a többi szkriptnyelvet, ez megkönnyíti a Lua megértését.

  21 Hours

Résztvevők száma



Ár per résztvevő

Vélemények (3)

Rokon tanfolyam

Combined C/C++, JAVA and Web Application Security

  28 Hours

Advanced Java Security

  21 Hours

Combined JAVA, PHP and Web Application Security

  28 Hours

Standard Java Security

  14 Hours

Java and Web Application Security

  21 Hours

Advanced Java, JEE and Web Application Security

  28 Hours

Rokon kategóriák