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.
Plan Szkolenia
Wprowadzenie do Lua
- Trochę historii
- Cele, cechy i cele inne niż cele Lua.
- Zasoby Lua dokumentacji i tutoriali
- Instalowanie interpretera Lua.
- Konfigurowanie i używanie LuaRocks
Podstawowa składnia i semantyka
- Identyfikatory
- Komentarze, blokowanie komentarzy
- Zmienne globalne i egzekwowanie rygorystyczności
- Zmienne lokalne
- Programy samodzielne, argumenty programu
- Jednostki kompilacji, fragmenty, wyrażenia, średniki
Typy danych i struktury danych
- Podstawowe typy: nil, boolean, number, string
- Typy obiektów: funkcja, dane użytkownika, wątek, tabela
- Referencje/obiekty a wartości podstawowe
- Znaczenie tabel w Lua
Wprowadzenie do tabel i ich wszechstronności
- Tabele jako tablica asocjacyjna
- Tabele jako tablice numeryczne, ciągi
Podstawowe struktury sterujące
- Jeśli to elseif else się kończy
- Pętla while
- Pętla powtórzeń
- Prosta pętla for
Obsługa błędów
- Zwracane wartości a wyjątki
- Konwersja wartości zwracanej na wyjątek
- Konwersja wyjątku na wartość zwracaną
- Poziomy błędów
Przykładowe programy
- Ocena wielomianu
- Przeszukiwanie wszerz
- Dodatkowe ćwiczenia
Więcej o funkcjach
- Nazwane argumenty
- Wywołania obiektowe
- Domknięcia
- Curry
- Ogon wzywa
- Wielokrotne przypisanie i powrót
- Varargs
Iteratory i współprogramy
- Ogólna pętla for
- Iteratory bezstanowe i stanowe
- Różnice pomiędzy iteratorami i współprogramami
Metatabele i metametody
- Ustawiony przykład
- Metametoda __tostring
- Metametody arytmetyczne
- Metametody __index, __newindex
- Metametoda __len
Moduły i pakiety
- Korzystanie z modułów
- Tworzenie modułów
- Organizowanie modułów w pakiety
Zaawansowane tabele
- Tabele kolejek i stosów
- Tabele opisujące wykresy
- Macierze jako tablice
- Połączone listy jako tabele
- Bufory ciągów
Metatabele na przykładach
- Serwery proxy
- Tylko czytać
- Zapamiętywanie
- Programowanie dynamiczne z zapamiętywaniem
- Przykład Fibonacciego
Środowiska
- Związek pomiędzy zmiennymi globalnymi a środowiskami
- Dowolne zmienne
- Tabela _ENV i tabela _G
Więcej o modułach
- Różne podejścia do tworzenia modułów
- Moduły zmieniające zachowanie
- Inicjalizacja modułu i argumenty
- Wykorzystanie środowisk do implementacji bezpiecznych modułów
Zaawansowane iteratory i współprogramy
- Producent, konsument, filtr
- Zawijanie współprogramów w celu uzyskania iteratorów
- Iterator bezstanowy dla list połączonych
Wkład w ekosystem
- Przesyłanie pakietów do MoonRocks
Paradygmat funkcjonalny w Lua
- Funkcja mapy
- Funkcja zmniejszania/składania
Zorientowany obiektowo Programming
- Różne podejścia do OOP
- Różne podejścia do dziedziczenia
- Przykłady
Opis przejścia Lua bibliotek standardowych
Kompilacja
- Kompilacja
- Ewaluacja
- Relacja z otoczeniem
- Kawałki binarne
Zbieranie śmieci
- Słabe tabele
- Finalizatory, metametoda __gc
Lua kod bajtowy i maszyna wirtualna
- Generowanie kodu bajtowego z kodu źródłowego
- Odczytywanie i analizowanie kodu bajtowego
- Szybki przegląd kodu źródłowego Lua maszyny wirtualnej
moduły C
- Dzwonię do C z Lua
- Search ścieżka i ładowanie modułów C
Dzwonię do Lua z C
- Stos
- Obsługa błędów
- Kontynuacje
Obsługa wartości i typów Lua z C
- Tablice
- Smyczki
- Dane użytkownika
- Metatabele
- Wywołania obiektowe
- Lekkie dane użytkownika
Zarządzanie pamięcią
- Alokatory
- API GC
Wątki w Lua
- Współprogramy vs wątki
- Prawdziwa wielowątkowość i stany Lua.
Wymagania
Znajomość co najmniej jednego innego języka programowania. Programming doświadczenie. Opcjonalnie, jeśli znasz inne języki skryptowe, ułatwi ci to zrozumienie Lua.
21 godzin