План на курса

Въведение в 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 Hours

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



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

Oтзиви от потребители (3)

Свързани Kурсове

Lua Fundamentals

14 Hours

OpenResty

7 Hours

Combined C/C++, JAVA and Web Application Security

28 Hours

Advanced Java Security

21 Hours

Combined JAVA, PHP and Web Application Security

28 Hours

Standard Java Security

14 Hours

Java and Web Application Security

21 Hours

Advanced Java, JEE and Web Application Security

28 Hours

Свързани Kатегории