Lua Script Учебник

Posted on by
Lua Script Учебник

Lua за 6. 0 минут « Santa Simplicita. Я сентиментальный программист. Иногда я влюбляюсь в языки программирования, и тогда я могу говорить о них часами.

Одним из этих часов я поделюсь с вами. Lua? Что это? Lua — простой встраиваемый язык (его можно интегрировать с вашими программами, написанными на других языках), легкий и понятный, с одним типом данных, с однообразным синтаксисом. Идеальный язык для изучения. Зачем? Lua может вам пригодится: * если вы геймер (плагины для World of Warcraft и множества других игр)* если вы пишете игры (очень часто в играх движок пишут на C/C++, а AI — на Lua)* если вы системный программист (на Lua можно писать плагины для nmap, wireshark, nginx и других утилит)* если вы embedded- разработчик (Lua очень быстрый, компактный и требует очень мало ресурсов)Что надо для того, чтобы читать дальше? Научитесь программировать. Хотя бы немного. Не важно на каком языке.

Добрый день, нужен Lua Кодер, для допила сервера ( ГТА 5). Может кто скинуть книгу "Программирование на языке Lua" на русском языке.

Скриптовый язык Lua. Русскоязычный сайт по Lua (документация, форум);; небольшой учебник по Lua (рус.); уроки по. SciTE Lua Scripting Extension в качестве языка сценариев использует Lua 5.1. Изложенное . Lua бы придуман в 1993 году в Католическом университете Рио-де-Жанейро. Lua - простой встраиваемый язык (его можно интегрировать с вашими программами, написанными на других языках), легкий и .

Установите Lua. Для этого либо скачайте здесь версию 5. Версия 5. 1 тоже пойдет, но знайте, что она очень старая. Все примеры из статьи запускайте в терминале командой наподобие «lua file. Первые впечатления.

Для всех, кто хотел разобраться с Lua (скриптовый язык для. Ps для PHP или Python, такой учебник явно превратится в рулон).

Lua — язык с динамической типизацией (переменные получают типы «на лету» в зависимости от присвоенных значений). Писать на нем можно как в императивном, так и в объектно- ориентированном или функциональном стиле (даже если вы не знаете как это — ничего страшного, продолжайте читать). Вот Hello world на Lua. Их у него много (как и у каждого серьезного языка): * nil (ровным счетом ничего)* булевы числа (true/false)* числа (numbers) — без деления на целые/вещественные. Просто числа.* строки — кстати, они очень похожи на строки в паскале* функции — да, переменная может быть типа «функция»* поток (thread)* произвольные данные (userdata)* таблица (table)Если с первыми типами все понятно, то что же такое userdata? Вспомним о том, что Lua — язык встраиваемый, и обычно тесно работает с компонентами программ, написанными на других языках.

Так вот, эти «чужие» компоненты могут создавать данные под свои нужды и хранить эти данные вместе с lua- объектами. Так вот, userdata — и есть подводная часть айсберга, которая с точки зрения языка lua не нужна, но и просто не обращать внимания на нее мы не можем. А теперь самое важное в языке — таблицы. Таблицы. Я вам снова соврал, когда сказал, что у языка 8 типов данных. Можете считать что он один: всё — это таблицы (это, кстати, тоже неправда). Таблица — это очень изящная структура данных, она сочетает в себе свойства массива, хэш- таблицы («ключ»- «значение»), структуры, объекта.

И при этом ключами могут быть какие угодно типы, не только числа. О них мы узнаем чуть позже, вначале — о функциях. Функции. Вот пример обычной функции. Так аргументы, значения которых не указаны явно, считаются равными nil. ПОДУМАЙТЕ: зачем может понадобиться возвращать несколько аргументов? А это уже получаются как- бы- методы.

Для тех, кто не знаком с ООП скажу, что основная его польза (по крайней мере в Lua) в том, что функции и данные, с которыми они работают находятся рядом — в пределах одного объекта. Для тех, кто знаком с ООП скажу, что классов здесь нет, а наследование прототипное. Перейдем к примерам. Есть у нас объект, скажем, лампочка. Она умеет гореть и не гореть. Ну а действия с ней можно сделать два — включить и выключить.

Но чтобы не быть многословными, в Lua есть сокращенная запись, которую обычно и используют — lamp: turn. Итого, мы уже знаем несколько таких упрощений синтаксиса. Переменные аргументы — это аргументы при вызове* . Главное не переусердствовать. Наследование. Для тех, кто не знает ООП, наследование позволяет расширить функциональность уже существующего класса. Например, просто лампочка умеет включаться- выключаться, а супер- ламкочка будет еще и яркость менять.

Зачем нам переписывать методы turn. У каждой таблицы есть одна таблица- предок, и дочерняя таблица умеет делать все, что умеет предок. Допустим, что объект- таблицу lamp мы уже создали. Тогда супер- лампочка будет выглядеть так.

Допустим, мы хотим складывать все строки с помощью оператора . Инструкция По Поведению Детей При Угрозе Теракта. Для этого надо подменить функцию «+» (. При создании все переменные в Lua являются глобальными. ПОДУМАЙТЕ: почему?

Для указания локальной области видимости пишут ключевое слово local. Не забывайте об этом слове.

Обработка ошибок. Часто, если возникают ошибки, надо прекратить выполнение определенной функции. Можно, конечно, сделать множество проверок и вызывать «return», если что- то пошло не так. Но это увеличит объем кода.

В Lua используется что- то наподобие исключений (exceptions). Ошибки порождаются с помощью функции error(x). В качестве аргумента можно передать все, что угодно (то, что имеет отношение к ошибке — строковое описание, числовой код, объект, с которым произошла ошибка и т. Обычно после этой функции вся программа аварийно завершается. А это надо далеко не всегда. Если вы вызываете функцию, которая может создать ошибку (или ее дочерние функции могут создать ошибку), то вызывайте ее безопасно, с помощью pcall().

В нашем случае в err находится текст ошибки. Стандартные библиотеки.