Благодарим ви, че изпратихте вашето запитване! Един от членовете на нашия екип ще се свърже с вас скоро.
Благодарим ви, че направихте своята резервация! Един от членовете на нашия екип ще се свърже с вас скоро.
План на курса
Въведение в Lua
- Малко от историята на целите, функциите и нецелите на Lua Ресурси от Lua документация и уроци Инсталиране на интерпретатора Lua Настройка и използване на LuaRocks
Основен синтаксис и семантика
- Идентификатори Коментари, блокови коментари Глобални променливи и налагане на строгост Локални променливи Самостоятелни програми, програмни аргументи Компилационни единици, парчета, изрази, точка и запетая
Типове данни и структури от данни
- Основни типове: нула, булево, число, низ Типове обекти: функция, потребителски данни, нишка, таблица Препратки/обекти срещу основни стойности Важността на таблиците в Lua
Въведение в таблиците и тяхната гъвкавост
- Таблици като асоциативен масив Таблици като числови масиви, поредици
Основни управляващи структури
- If then elseif else end Цикълът while Цикълът повторение Простият цикъл for
Обработка на грешки
- Върнати стойности срещу изключения Преобразуване на върната стойност в изключение Преобразуване на изключение в върната стойност Нива на грешка
Примерни програми
- Полиномна оценка Първо търсене в ширина Допълнителни упражнения
Повече за функциите
- Наименувани аргументи Обектно-ориентирани извиквания Затваряния Currying Tail извиквания Множествено присвояване и връщане Varargs
Итератори и съвместни процедури
- Общият for цикъл Итератори без състояние срещу състояние Разлики между итератори и съвместни процедури
Метатаблици и метаметоди
- Примерът за набор Метаметодът __tostring Аритметични метаметоди Метаметодите __index, __newindex Метаметодът __len
Модули и пакети
- Използване на модули Създаване на модули Организиране на модули в пакети
Разширени таблици
- Таблици за опашки и стекове Таблици, описващи графики Матрици като таблици Свързани списъци като таблици Стрингови буфери
Метатаблици чрез примери
- Проксита Мемоизация само за четене Динамично програмиране с мемоизация Примерът на Фибоначи
Среди
- Връзка между глобални променливи и среди Безплатни променливи Таблицата _ENV и таблицата _G
Повече за модулите
- Различни подходи за създаване на модули Модули, които променят поведението Инициализация на модули и аргументи Използване на среди за внедряване на безопасни модули
Разширени итератори и съвместни процедури
- Производител, потребител, филтър Съвместни процедури за обвиване за получаване на итератори Итератор без състояние за свързани списъци
Принос към екосистемата
- Качване на пакети в MoonRocks
Функционална парадигма в Lua
- Функцията за карта Функцията за намаляване / сгъване
Обектно-ориентиран Programming
- Различни подходи към ООП Различни подходи към наследяване Примери
Обзор на Lua стандартните библиотеки
Компилация
- Компилация Eval Връзка със средата Двоични парчета
Събиране на боклук
- Финализатори на слаби таблици, мета-методът __gc
Lua байт код и виртуална машина
- Генериране на байткод от изходния код Четене и анализиране на байткод Бърза обиколка на изходния код на Lua VM
C модули
- Извикване на C от пътя на Lua Search и зареждане на C модули
Обаждане до Lua от C
- Продължения за обработка на грешки в стека
Обработка на Lua стойности и типове от C
- Масиви Низове Потребителски данни Метатаблици Обектно ориентирани извиквания Леки потребителски данни
Управление на паметта
- Разпределители GC API
Нишки в Lua
- Съвместни процедури срещу нишки Реална многонишковост и състояния Lua.
Изисквания
Познаване на поне още един език за програмиране. Programming опит. По желание, ако сте запознати с други скриптови езици, това ще улесни разбирането на Lua.
21 Часа