2009-02-24 9 views
17

Estoy en una etapa en la que estoy obligado a aprender Lua, ¿tienes alguna sugerencia sobre cómo puedo hacer esto? No tengo mucha experiencia con otros lenguajes de scripting que PHP.Begin Lua-scripting

Entonces, algunas sugerencias sobre "head start Lua" -pages?

EDITAR

Como una adición a las páginas del tutorial maravillosos, ¿podría sugerir "programas" que podría hacer que me ayudará a aprender Lua? Imagine que quisiera aprender Punteros en C++, haría una lista vinculada. Quiero tocar lo básico en Lua pero mientras tanto estar abierto a cosas bastante avanzadas.

+2

Un punto menor: el nombre de Lua no es un acrónimo. Está escrito correctamente como "Lua" u ocasionalmente "lua", pero nunca como "LUA". Ver http://www.lua.org/about.html para la historia completa. – RBerteig

+0

Estaba a punto de hacer el mismo comentario. : P Esta es a menudo la primera indicación de las personas que vienen a Lua. No estas solo. – akauppi

+0

Lua no es un Acuerdo de usuario de la licencia. ;) –

Respuesta

33

En primer lugar, siga su camino a través del Programming in Lua, le tomará un día o dos para obtener la esencia de Lua.

Sin embargo, puedo decirle de inmediato en su primera vez a través de ignorar corutinas y metatablas, que son muy potentes, pero toman un tiempo para comprender. Primero aprenda la sintaxis, el alcance (lo mismo que PHP afortunadamente para usted) y las bibliotecas estándar.

Después de eso regrese a corutinas y metatablas, léelos y pruébelos por tercera vez. Puede obtenerlos. A menos que tenga un muy buen historial CS estos son temas complejos

Edit: El libro es gratis en línea == sitio web. Además, es el mejor tutorial que existe en Lua, todos aprenden Lua con él.

también: Si eres objetivo es Lua de World of Warcraft (probablemente no, pero por si acaso) se puede extraer this tutorial

Y: Aquí hay un hilo tips and tricks en StackOverflow, podría ayudar darle algunas ideas de lo que puede esperar de Lua

programas sugeridos/Ejercicios:

Puesto que usted está mirando inicialmente Lua para el desarrollo web intente comprender y mejorar el ejemplo Data Description en PIL. Te dará algunas buenas ideas y una buena sensación para el poder o Lua.

Luego puede probar jugar con el capítulo Data Structures, aunque Lua tiene un solo tipo de datos complejo, la Tabla, ese capítulo le mostrará formas similares a Lua para hacer que una tabla haga lo que necesite.

Finalmente, una vez que empiezas a asimilar metatablas debes diseñar un sistema de clases (sí, con Lua decides cómo funciona tu sistema de clases). Estoy seguro de que todos los que conocen a Lua han creado una docena de sistemas de clases, un buen capítulo para comenzar con un sistema de clases es Object-Oriented Programming

Y si tienes tiempo y sabes C o algo así (C# y Java incluidos) intente extender una aplicación con Lua, pero tardará una semana o dos en hacerlo

+0

Muchas gracias. Tengo algo mejor que un CS-background, tengo (pronto) un grado en Ingeniería de Software :) –

+0

Sí Ingeniería de Software es mejor en el campo de batalla, pero Metatables y Coroutines son el tipo de cosas que las personas CS hablan mucho más que Ingenieros . –

+0

Bien, ¡muchas gracias amigo! No es para World of Warcraft, pero cuando conozca a LUA, tal vez debería probarlo en un juego. Es principalmente para cosas de la Web ahora. –

2

Además de las sugerencias anteriores, también está el Lua wiki que bien merece una ojeada. Hay una gran cantidad de fragmentos de código y pequeñas recetas que pueden ser útiles.

1

Puedes instalar World of Warcraft y hacer un mod para eso (usa Lua). En realidad, esa es probablemente una mala idea.

Tal vez tratar de integrar Lua en una aplicación .NET (suponiendo que usted es un programador de C#) y hacer algo 'divertido' con él:

Using Lua with C#

O simplemente navegar lua.org

+0

Voy a ignorar la parte sobre WoW;) Pero la parte C# es adorable, ¡gracias! –

4

También hay un gran cuerpo de proyectos relacionados con Lua en LuaForge.

Si usa Windows como su plataforma diaria, le recomiendo que obtenga el paquete Lua for Windows como un buen punto de partida. Incluye una amplia gama de módulos útiles, todos preconstruidos e instalados junto con el intérprete de Lua.

Después de que su primer paso por PiL y la reference manual, tendrá que leer Lua Programming Gems la que actualmente sólo está disponible en una edición de papel.

<plug> ¿Se considera la compra de los libros a través de los enlaces asociados a Lua's books page o LuaForge para apoyar los proyectos. </plug>

Editar: En cuanto a las ideas para proyectos de programación en Lua es adecuado, buscar problemas donde el table provee un impulso. Las tablas son fundamentales para Lua, ya que incluso las variables globales son solo campos en una tabla. Las tablas se pueden indexar por valores de cualquier tipo de datos excepto nil, pero tienen una implementación especialmente eficiente si se usan como matrices.

Una peculiaridad que hace tropezar a las personas provenientes de un entorno tipo C es que todas las cosas en Lua se indexan de forma natural a partir de 1. Las cadenas se indexan desde 1, las matrices comienzan en 1, etc. No se preocupe demasiado No hay nada de malo en usar a[0], pero la longitud de la matriz dada por #a se define suponiendo que la matriz comenzó con a[1].

Otra peculiaridad es que las funciones realmente no tienen nombres. Son valores de primera clase que generalmente se almacenan en alguna variable que tenga un nombre. La sintaxis del azúcar hace que parezca que tienen nombres, pero eso es solo una conveniencia.

Las metatablas son una característica especialmente lúdica de las tablas (y otros tipos, pero ese es un tema realmente avanzado) que son la base de la mayoría de los esquemas para hacer cosas orientadas a objetos en Lua.

Los cierres y las llamadas de cola verdadera son otras características de Lua que no se encuentran a menudo en los lenguajes de scripting pequeños que realmente pueden hacer que algunos lenguajes sean fáciles de implementar.

+0

Comentarios impresionantes! ¡Gracias! –

4

Es curioso ver todas estas elaboradas listas (aunque ciertamente son correctas). En 2002, leí acerca de las primeras 20 páginas del manual de referencia de Lua y comencé a usarlo. Realmente es así de simple. Lua (y ANSI C) son de los pocos idiomas que realmente encajan en la mente de una sola vez, y se quedan allí. Para los demás, al menos tengo que volver a aprender constantemente.

Tenga en cuenta que para llegar a piense que en Lua llevará tiempo. Creo que el mío fue 6 meses más o menos. Cuando se trata de C/C++, tendemos a resolver problemas de ciertas maneras. Lua podría ofrecer mejores medios (es decir, mediante el uso de tablas), pero lleva un tiempo comenzar a verlos. Esta transición a un nivel de abstracción más elevado es similar al cambio Assembler-> C en los años ochenta. Muchas personas todavía codificaron un tiempo en C como si solo fuera un ensamblador portátil.

1

Escribí un corto quick-start guide to Lua para las personas que lo usaban en un proyecto en el que estaba trabajando. Si está familiarizado con otros lenguajes de scripting, puede ponerlo en funcionamiento rápidamente. Los docs on Lua.org son muy buenos y deberían cubrir casi todo lo demás que necesita. Lua es un lenguaje bastante pequeño y se puede aprender con bastante rapidez.

1

Esta es una recomendación bastante general, pero si desea iniciarse en un nuevo lenguaje de programación como ingeniero de software, es divertido comenzar a resolver los problemas encontrados en Project Euler en su nuevo lenguaje de programación. He estado haciendo esto recientemente con Python y me pareció inspirador y trajo mucho entusiasmo a la codificación.

+0

¡Sitio increíble! ¡Gracias! –

Cuestiones relacionadas