Начать Lua-скриптинг

Я нахожусь на стадии, когда я вынужден изучать Lua, так что у вас есть какие-нибудь предложения, как мне это сделать? У меня нет большого опыта работы с другими языками сценариев, кроме PHP.

Итак, какие-нибудь предложения по страницам "Head Start Lua"?

РЕДАКТИРОВАТЬ

Не могли бы вы предложить в качестве дополнения к замечательным страницам руководств какие-нибудь «программы», которые помогут мне изучить Lua? Представьте, что я хотел бы изучить указатели на C++, я бы сделал связанный список. Я хочу коснуться основ Lua, но при этом буду открыт для довольно продвинутых вещей.

Ответов (7)

Решение

Прежде всего, проработайте программирование на Lua , вам понадобится день или два, чтобы понять суть Lua.

Однако я могу сразу сказать вам, что вы в первый раз игнорируете сопрограммы и метатаблицы, они очень мощные, но нужно время, чтобы понять. Сначала изучите синтаксис, область видимости (то же самое, что и PHP, к счастью для вас) и стандартные библиотеки.

После этого вернитесь к сопрограммам и метатаблицам, прочтите их, попробуйте, и к третьему разу вы можете получить это. Если у вас нет хорошего опыта в CS, это сложные темы.

Изменить: книга бесплатна в Интернете == веб-сайт. Кроме того, это лучший учебник по Lua, с ним все изучают Lua.

Также: если ваша цель - Lua для World of Warcraft (возможно, нет, но на всякий случай), вы можете проверить это руководство.

И: Вот ветка советов и приемов на StackOverflow, которая может помочь дать вам некоторые идеи о том, чего ожидать от Lua.

Предлагаемые программы / упражнения:

Поскольку вы изначально смотрите на Lua для веб-разработки, попробуйте понять и улучшить пример описания данных в PIL. Это даст вам несколько хороших идей и хорошее представление о мощи Lua.

Затем вы можете попробовать поиграть с главой о структурах данных , хотя в Lua есть один сложный тип данных, таблица, в этой главе будут показаны Lua-подобные способы заставить таблицу делать все, что вам нужно.

Наконец, как только вы начнете изучать метатаблицы, вам следует разработать систему классов (да, с Lua вы сами решаете, как работает ваша система классов). Я уверен, что каждый, кто знает Lua, создал дюжину систем классов, хорошей главой для начала работы с системой классов является объектно-ориентированное программирование.

И если у вас есть время и вы знаете C или что-то в этом роде (включая C# и Java), попробуйте расширить приложение с помощью Lua, но это займет неделю или две.

Вы можете установить World of Warcraft и сделать для этого мод (он использует Lua). На самом деле это, наверное, плохая идея.

Возможно, попробуйте интегрировать Lua в приложение .NET (при условии, что вы программист на C#) и сделать с ним что-нибудь «забавное»:

Использование Lua с C#

Или просто зайдите на lua.org

В дополнение к приведенным выше предложениям есть также вики-сайт Lua, который стоит изучить. Там огромное количество фрагментов кода и небольших рецептов, которые могут быть полезны.

В LuaForge также есть большое количество проектов, связанных с Lua .

Если вы используете Windows в качестве повседневной платформы, я бы порекомендовал получить пакет Lua для Windows в качестве хорошей отправной точки. Он включает в себя широкий спектр полезных модулей, которые все предварительно собраны и установлены вместе с интерпретатором Lua.

После вашего первого прохождения через PiL и справочное руководство вы захотите прочитать Lua Programming Gems, который в настоящее время доступен только в бумажной версии.

<plug> Рассмотрите возможность покупки книг по ассоциированным ссылкам на странице книг Lua или LuaForge для поддержки проектов. </plug>

Изменить: Что касается идей для программных проектов, для которых подходит Lua, ищите проблемы, в которых он table предоставляет рычаги. Таблицы занимают центральное место в Lua, поскольку даже глобальные переменные - это просто поля в таблице. Таблицы могут быть проиндексированы значениями любого типа данных, кроме nil, но имеют особенно эффективную реализацию, если используются как массивы.

Одна причуда, которая сбивает с толку людей, пришедших с C-подобным фоном, заключается в том, что все вещи в Lua естественно индексируются, начиная с 1. Строки индексируются с 1, массивы начинаются с 1 и т. Д. Не беспокойтесь об этом слишком сильно, есть нет ничего плохого в использовании a[0], но длина массива, заданного параметром, #a определяется исходя из предположения, что массив начинается с a[1] .

Еще одна причуда в том, что у функций на самом деле нет имен. Это значения первого класса, которые обычно хранятся в некоторой переменной с именем. Синтаксический сахар делает вид, будто у них есть имена, но это просто удобство.

Метатаблицы - это особенность таблиц Lua-типа (и других типов, но это действительно продвинутая тема), которые являются основой для большинства схем для выполнения объектно-ориентированных вещей в Lua.

Замыкания и истинные хвостовые вызовы - это другие особенности Lua, которые не часто встречаются в небольших языках сценариев, которые действительно могут упростить реализацию некоторых идиом.

Забавно видеть все эти тщательно продуманные списки (хотя они, безусловно, верны). Еще в 2002 году я прочитал о первых 20+ страницах справочного руководства Lua и начал его использовать. Это на самом деле это так просто. Lua (и ANSI C) - это один из немногих языков, которые действительно умещаются в голове сразу - и остаются там. Что касается других, по крайней мере, мне нужно постоянно переучиваться.

Имейте в виду, что для того, чтобы подумать в Lua, потребуется время. Думаю, моему было 6 месяцев или около того. Переходя с C/C++, мы склонны решать проблемы определенным образом. Lua может предложить более эффективные средства (например, использование таблиц), но для того, чтобы увидеть их, нужно время. Этот переход на более высокий уровень абстракции аналогичен переходу от Assembler-> C в 1980-х годах. Многие люди еще какое-то время кодировали на C, как если бы это был всего лишь портативный ассемблер.

Это довольно общая рекомендация, но если вы хотите начать работу с новым языком программирования в качестве инженера-программиста, интересно начать решать проблемы, обнаруженные в Project Euler, на вашем новом языке программирования. Недавно я проделал это с Python и обнаружил, что это вдохновляет и вносит большой энтузиазм в кодирование.

Я написал краткое руководство по Lua для людей, использующих его в проекте, над которым я работал. Если вы знакомы с другими языками сценариев, это может помочь вам быстро начать работу. В документах на lua.org очень хороши и должны охватывать практически все остальное вам нужно. Lua - довольно маленький язык, и его можно выучить довольно быстро.