2009-02-24 13 views
17

Sono in una fase in cui sono costretto ad imparare Lua, quindi hai qualche suggerimento su come faccio questo? Non ho molta esperienza con altri linguaggi di scripting di PHP.Begin Lua-scripting

Quindi, alcuni suggerimenti sulle pagine "head start Lua"?

EDIT

In aggiunta alle pagine del tutorial meravigliosi, la prego di suggerire eventuali "programmi" Potrei fare che vi aiuterà a imparare Lua? Immagina che vorrei imparare i puntatori in C++, farei una lista collegata. Voglio toccare le basi in Lua ma intanto essere aperto a cose piuttosto avanzate.

+2

Un punto secondario: il nome di Lua non è un acronimo. È scritto correttamente come "Lua" o occasionalmente "lua", ma mai "LUA". Vedi http://www.lua.org/about.html per l'intera storia. – RBerteig

+0

Era quasi il fare lo stesso commento. : P Questa è spesso la prima indicazione sulle persone che vengono a Lua. Non sei solo. – akauppi

+0

Lua non è un contratto di licenza con l'utente. ;) –

risposta

33

Prima di tutto attraversate il Programming in Lua, ci vorrà un giorno o due per ottenere l'essenza di Lua.

Tuttavia posso dirti subito la prima volta che ignori le coroutine e le metatable, sono molto potenti ma richiedono un po 'di tempo per essere afferrate. Prima apprendi la sintassi, l'ambito (come PHP per te) e le librerie standard.

Dopo di che tornare a coroutine e metacli, leggerli provarli e alla terza volta attraverso si potrebbe ottenere. A meno che tu non abbia un ottimo background CS, questi sono argomenti complessi

Modifica: Il libro è online == sito web gratuito. Inoltre è il miglior tutorial là fuori su Lua, tutti imparano Lua con esso.

anche: Se siete scopo è Lua per World of Warcraft (probabilmente non, ma solo nel caso) è possibile controllare this tutorial

E: Ecco un filo tips and tricks su StackOverflow, potrebbe aiutare darvi alcune idee di cosa aspettarsi da Lua

suggerite Programmi/Esercizi:

Dato che si sta inizialmente guardando Lua per lo sviluppo web cerca di capire e migliorare l'esempio Data Description in PIL. Ti darà alcune buone idee e una bella sensazione per il potere o Lua.

Quindi potresti provare a giocare con il capitolo Data Structures, sebbene Lua abbia un singolo tipo di dati complesso, la Tabella, quel capitolo ti mostrerà i modi simili a Lua per fare in modo che una tabella esegua qualsiasi cosa tu abbia bisogno.

Infine, una volta che inizi a compilare i metabli, devi progettare un sistema di classe (sì con Lua decidi come funziona il tuo sistema di classe). Sono sicuro che tutti quelli che conoscono Lua hanno creato una dozzina di sistemi di classe, un buon capitolo per iniziare in un sistema di classe è Object-Oriented Programming

E se hai tempo e conosci C o qualcosa del genere (C# e Java inclusi) prova ad estendere un'applicazione con Lua, ma ci vorranno una o due settimane per fare

+0

Grazie mille. Ho qualcosa di meglio di un CS-background, ho (presto) una laurea in Ingegneria del software :) –

+0

Sì, l'ingegneria del software è migliore sul campo di battaglia, ma Metatables e Coroutine sono il genere di cose che le persone CS si soffermano più degli ingegneri . –

+0

Ok, grazie amico mio! Non è per World of Warcraft, ma quando conosco LUA, forse dovrei provarlo su un gioco. È principalmente per roba Web ora. –

2

Oltre ai suggerimenti sopra, c'è anche lo Lua wiki che vale la pena sfogliare. Esistono moltissimi frammenti di codice e piccole ricette che possono essere utili.

1

È possibile installare World of Warcraft e creare un mod per questo (utilizza Lua). In realtà è probabilmente una cattiva idea.

Forse cercare di integrare Lua in un'applicazione .NET (supponendo che si sono un programmatore C#) e fare qualcosa di 'divertimento' con esso:

Using Lua with C#

O semplicemente navigare lua.org

+0

Im ignorando la parte di WoW;) Ma la C# -part è adorabile, grazie! –

4

C'è anche una grande quantità di progetti relativi a Lua allo LuaForge.

Se ti capita di utilizzare Windows come piattaforma quotidiana, ti consiglio di acquistare il pacchetto Lua for Windows come un buon punto di partenza. Comprende una vasta gamma di moduli utili tutti preinstallati e installati insieme all'interprete Lua.

Dopo il primo passaggio attraverso PiL e reference manual, si vorrà leggere Lua Programming Gems che è attualmente disponibile solo in un'edizione cartacea.

<plug> Considerare l'acquisto dei libri tramite i collegamenti associati a Lua's books page o LuaForge per supportare i progetti. </plug>

Edit: Per quanto riguarda le idee per i progetti di programmazione in cui Lua è adatto, cercare problemi in cui il table fornisce aiuti. Le tabelle sono centrali per Lua, poiché anche le variabili globali sono solo campi in una tabella. Le tabelle possono essere indicizzate in base a valori di qualsiasi tipo di dati tranne nil, ma hanno un'implementazione particolarmente efficiente se utilizzate come matrici.

Una stranezza che fa scattare persone che provengono da uno sfondo di tipo C è che tutte le cose in Lua sono indicizzate naturalmente a partire da 1. Le stringhe sono indicizzate da 1, gli array iniziano da 1, ecc. Non preoccuparti anche di questo molto, non c'è niente di sbagliato nell'usare a[0], ma la lunghezza dell'array data da #a è definita assumendo che l'array abbia avuto inizio con a[1].

Un'altra stranezza è che le funzioni in realtà non hanno nomi. Sono valori di prima classe che di solito sono memorizzati in alcune variabili che hanno un nome. La sintassi dello zucchero fa sembrare che abbiano nomi, ma è solo una comodità.

I metabli sono una caratteristica particolarmente lua di tabelle (e altri tipi, ma questo è un argomento molto avanzato) che sono alla base della maggior parte degli schemi per fare cose orientate agli oggetti in Lua.

Chiusure e chiamate true tail sono altre funzionalità di Lua che non si trovano spesso in linguaggi di scripting di piccole dimensioni che possono davvero rendere facili alcuni idi di implementare.

+0

Feedback impressionante! Grazie! –

4

Divertente vedere tutte queste liste elaborate (anche se sono certamente corrette). Nel 2002, ho letto le prime 20+ pagine del manuale di riferimento Lua e ho iniziato a usarlo. È davvero è così semplice. Lua (e ANSI C) sono delle poche lingue che si adattano veramente alla mente tutte insieme - e restano lì. Per gli altri, almeno ho bisogno di fare costantemente qualche riapprendimento.

Si prega di notare che arrivare a pensare a a Lua richiederà tempo. Penso che il mio fosse di circa 6 mesi. Quando provengono da C/C++, tendiamo a risolvere i problemi in certi modi. Lua potrebbe offrire mezzi migliori (ad esempio tramite l'uso di tabelle) ma ci vuole un po 'per iniziare a vederli. Questa transizione a un livello di astrazione più elevato è simile allo spostamento di Assembler-> C negli anni '80. Molte persone hanno ancora codificato un po 'di tempo in C come se fosse solo un assemblatore portatile.

1

Ho scritto un breve quick-start guide to Lua per le persone che lo utilizzano su un progetto su cui stavo lavorando. Se si ha familiarità con altri linguaggi di scripting, è possibile che si attivi rapidamente. I docs on Lua.org sono molto buoni e dovrebbero coprire la maggior parte qualsiasi altra cosa di cui avete bisogno. Lua è una lingua piuttosto piccola e può essere appresa abbastanza velocemente.

1

Questa è una raccomandazione piuttosto generica, ma se si desidera iniziare in un nuovo linguaggio di programmazione come ingegnere del software, è divertente iniziare a risolvere i problemi rilevati allo Project Euler nel nuovo linguaggio di programmazione. Lo sto facendo recentemente con Python e l'ho trovato molto stimolante e molto entusiasmante per la codifica.

+0

Sito incredibile! Grazie! –

Problemi correlati