План на курса

Въведение в 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 Часа

Брой участници


Цена за участник

Upcoming Courses