scripting - theme - python obs
Comenzar Lua-scripting (7)
Estoy en una etapa en la que me veo obligado a aprender Lua, ¿tienes alguna sugerencia sobre cómo hago esto? No tengo mucha experiencia con ningún otro lenguaje de script que no sea PHP.
Por lo tanto, algunas sugerencias sobre "Head Start Lua" -páginas?
EDITAR
Como una adición a las maravillosas páginas de tutoriales, ¿podría sugerir algún "programa" que pueda hacer que me ayude a aprender Lua? Imagina que me gustaría aprender Punteros en C ++, crearía una lista vinculada. Quiero tocar lo básico en Lua, pero al mismo tiempo estar abierto a cosas bastante avanzadas.
Además de las sugerencias anteriores, también está la wiki de Lua que vale la pena explorar. Hay una gran cantidad de fragmentos de código y pequeñas recetas que pueden ser útiles.
En primer lugar, trabaje a través de la Programación en Lua , debería llevarle un día o dos obtener la esencia de Lua.
Sin embargo, puedo decirle de inmediato que, por primera vez, ignorar los coroutines y los metatables, son muy potentes, pero tómese un tiempo para comprenderlos. Primero aprenda la sintaxis, el alcance (lo mismo que PHP afortunadamente para usted) y las bibliotecas estándar.
Después de eso, vuelva a las rutinas y los metatables, léalos, pruébelos y, por tercera vez, puede obtenerlos. A menos que tenga un fondo de CS muy bueno, estos son temas complejos
Editar: El libro es gratis en línea == sitio web. Además, es el mejor tutorial que hay en Lua, todos aprenden Lua con él.
También: Si tu propósito es Lua para World of Warcraft (probablemente no, pero por si acaso) puedes consultar este tutorial.
Y: Aquí hay un hilo de consejos y trucos en , que podría ayudarlo a darle algunas ideas de lo que puede esperar de Lua.
Programas / Ejercicios sugeridos:
Ya que inicialmente está buscando Lua para el desarrollo web, intente comprender y mejorar el ejemplo de descripción de datos en PIL. Te dará algunas buenas ideas y una buena sensación del poder o Lua.
Es posible que desee probar jugando con el capítulo de Estructuras de datos , aunque Lua tiene un solo tipo de datos complejo, la Tabla, ese capítulo le mostrará formas similares a las de Lua de hacer que una tabla haga cualquier cosa que necesite.
Finalmente, una vez que empieces a desarrollar metatatos, deberías diseñar un sistema de clases (sí, con Lua, decides cómo funciona tu sistema de clases). Estoy seguro de que todos los que saben que Lua ha creado una docena de sistemas de clase, un buen capítulo para comenzar a utilizar un sistema de clase es la programación orientada a objetos.
Y si tiene tiempo y sabe C o algo así (C # y Java incluidos) intente extender una aplicación con Lua, pero tomará una o dos semanas.
Es gracioso ver todas estas listas elaboradas (aunque ciertamente son correctas). En 2002, leí 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 caben en la mente de una sola vez, y permanecen allí. Para los demás, al menos necesito hacer constantemente un reaprendizaje.
Ten en cuenta que llegar a pensar en Lua llevará tiempo. Creo que la mía tenía 6 meses más o menos. Cuando venimos de C / C ++, tendemos a resolver problemas de ciertas maneras. Lua puede ofrecer mejores medios (es decir, mediante el uso de tablas) pero toma un tiempo comenzar a verlos. Esta transición a un nivel de abstracción más alto es similar al cambio del ensamblador -> C en la década de 1980. Mucha gente todavía codificaba un tiempo en C como si solo fuera un ensamblador portátil.
Escribí una breve guía de inicio rápido de Lua para las personas que la usan en un proyecto en el que estaba trabajando. Si está familiarizado con otros lenguajes de secuencias de comandos, puede comenzar a utilizarlo rápidamente. Los documentos en 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 bastante rápido.
Esta es una recomendación bastante general, pero si desea comenzar con un nuevo lenguaje de programación como ingeniero de software, es divertido comenzar a resolver los problemas encontrados en el Proyecto Euler en su nuevo lenguaje de programación. He estado haciendo esto con Python recientemente y me ha parecido inspirador y me ha entusiasmado mucho la codificación.
Podría instalar World of Warcraft y hacer un mod para eso (usa Lua). En realidad eso es probablemente una mala idea.
Tal vez intente integrar Lua en una aplicación .NET (asumiendo que usted es un programador de C #) y haga algo "divertido" con ella:
O simplemente navegar por lua.org
También hay una gran cantidad de proyectos relacionados con Lua en LuaForge .
Si usa Windows como su plataforma del día a día, le recomendaría obtener el paquete Lua para Windows como un buen punto de partida. Incluye una amplia gama de módulos útiles, todos precompilados e instalados junto con el intérprete Lua.
Después de su primer paso por PiL y el manual de referencia , querrá leer Lua Programming Gems, que actualmente solo está disponible en una edición en papel.
<plug>
Considere comprar los libros a través de los enlaces asociados en la página de libros de Lua o LuaForge para respaldar los proyectos. </plug>
Edición: En cuanto a ideas para proyectos de programación en los que se adapta a Lua, busque problemas en los que la table
proporcione influencia. 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 que provienen de un fondo tipo C es que todas las cosas en Lua se indexan naturalmente a partir de 1. Las cadenas se indexan de 1, las matrices comienzan en 1, etc. No se preocupe demasiado, hay no hay nada de malo en usar a[0]
, pero la longitud de la matriz dada por #a
se define asumiendo 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 tiene un nombre. La sintaxis del azúcar hace que parezca que tienen nombres, pero eso es solo una conveniencia.
Los metatables son una característica particular de Lua-ish 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 real son otras características de Lua que no se encuentran a menudo en pequeños lenguajes de scripting que realmente pueden hacer que algunos modismos sean fáciles de implementar.