Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Schița de curs
Introducere la Lua
- Un pic de istorie
- Obiectivele, caracteristicile și non-goalurile lui Lua.
- Resurse ale Lua documentație și tutoriale
- Instalarea interpretului Lua.
- Configurarea și utilizarea LuaRocks
Sintaxă și semantică de bază
- Identificatori
- Comentarii, blocați comentariile
- Variabile globale și aplicarea strictității
- Variabile locale
- Programe independente, argumente de program
- Unități de compilare, bucăți, expresii, punct și virgulă
Tipuri de date și structuri de date
- Tipuri de bază: zero, boolean, număr, șir
- Tipuri de obiecte: funcție, date utilizator, fir, tabel
- Referințe/obiecte vs. valori de bază
- Importanța tabelelor în Lua
Introducere în mese și versatilitatea acestora
- Tabelele ca un tablou asociativ
- Tabelele ca matrice numerice, secvențe
Structuri de control de bază
- Sfârșitul dacă, atunci elseif altfel
- Bucla while
- Bucla repetată
- Simplul for bucla
Eroare de manipulare
- Valori returnate vs excepții
- Conversia unei valori returnate într-o excepție
- Conversia unei excepții într-o valoare returnată
- Niveluri de eroare
Exemple de programe
- Evaluare polinomială
- Lățimea prima căutare
- Exerciții suplimentare
Mai multe despre funcții
- Argumente numite
- Apeluri orientate pe obiecte
- Închideri
- curry
- Apeluri de coadă
- Atribuire multiplă și returnare
- Varargs
Iteratoare și co-rutine
- Bucla generică pentru
- Iteratoare fără stat vs
- Diferențele dintre iteratoare și co-rutine
Metatable și metametode
- Exemplul stabilit
- Metametoda __tostring
- Metametode aritmetice
- Metametodele __index, __newindex
- Metametoda __len
Module și pachete
- Utilizarea modulelor
- Crearea modulelor
- Organizarea modulelor în pachete
Tabele avansate
- Mese pentru cozi și stive
- Tabele care descriu grafice
- Matricele ca tabele
- Liste legate ca tabele
- Buffer-uri de șiruri
Metatable prin exemple
- Proxy-uri
- Numai citire
- Memorarea
- Programare dinamică cu memorare
- Exemplul Fibonacci
Medii
- Relația dintre variabilele globale și medii
- Variabile libere
- Tabelul _ENV și tabelul _G
Mai multe despre module
- Diferite abordări ale creării modulelor
- Module care modifică comportamentul
- Inițializarea modulului și argumentele
- Utilizarea mediilor pentru a implementa module sigure
Iteratoare și co-rutine avansate
- Producător, consumator, filtru
- Încheierea co-rutinelor pentru a obține iteratori
- Iterator fără stat pentru listele legate
Contribuția la ecosistem
- Încărcarea pachetelor pe MoonRocks
Paradigma funcțională în Lua
- Funcția de hartă
- Funcția de reducere/pliere
Orientat pe obiecte Programming
- Diferite abordări ale POO
- Abordări diferite ale moștenirii
- Exemple
O prezentare a Bibliotecilor standard Lua.
Compilare
- Compilare
- Eval
- Relația cu mediul
- Bucăți binare
Colectarea gunoiului
- Mesele slabe
- Finalizatoare, metametoda __gc
Lua bytecode și mașină virtuală
- Generarea de bytecode din codul sursă
- Citirea și analiza bytecode
- Tur rapid al codului sursă al Lua VM
module C
- Apelând C de la Lua
- Search calea și încărcarea modulelor C
Apelând Lua de la C
- Stiva
- Eroare de manipulare
- Continuări
Manipularea valorilor Lua și a tipurilor din C
- Matrice
- Siruri de caractere
- Datele utilizatorului
- Metatablele
- Apeluri orientate obiect
- Date ușoare ale utilizatorului
Gestionarea memoriei
- Alocatori
- GC API
Fire în Lua
- Co-rutine vs fire
- Multi-threading real și stări Lua.
Cerințe
Familiaritate cu cel puțin un alt limbaj de programare. Programming experiență. Opțional, dacă aveți familiaritate cu alte limbaje de scripting, acest lucru va facilita înțelegerea Lua.
21 ore