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.
Lua to łatwy w użyciu język skryptowy, który jest używany jako wbudowany język wtyczek/rozszerzeń w różnych produktach. Na przykład jest to wbudowany język skryptowy aplikacji sieciowych, takich jak nmap i wireshark, a także można go znaleźć jako język skryptowy w World of Warcraft, Orbiter i innych grach.
Lua może być również używany jako samodzielny język. Jest to lekki, wieloparadygmatowy język programowania, dlatego kurs uczy różnych pojęć, które studenci uznają za przydatne również w innych obszarach inżynierii oprogramowania.
Ten kurs obejmuje wszystko, co można wiedzieć o Lua. Rozwijamy się od podstawowych konstrukcji programistycznych, poznajemy zaawansowane techniki i wreszcie mówimy o osadzaniu Lua w innych językach programowania i osadzaniu innych języków programowania w Lua. Kurs zawiera wiele ćwiczeń programistycznych, dzięki czemu nowicjusze mogą zdobyć biegłość w języku, zaczynając od zera.
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.
United Arab Emirates - Comprehensive Lua
Saudi Arabia - Comprehensive Lua
South Africa - Comprehensive Lua
Brasil - Compreendendo a linguagem de programação Lua
Österreich - Lua Programmierung
Deutschland - Lua Programmierung
Czech Republic - Comprehensive Lua
Magyarország - Comprehensive Lua
Luxembourg - Comprehensive Lua
Portugal - Compreendendo a linguagem de programação Lua
New Zealand - Comprehensive Lua
Philippines - Comprehensive Lua
Costa Rica - Comprehensive Lua
United Kingdom - Comprehensive Lua
South Korea - Comprehensive Lua