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 Órák

Résztvevők száma


Ár résztvevőnként

Közelgő kurzusok

Rokon kategóriák