Aiuto:Lua: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riformulo
Etichette: Modifica da mobile Modifica da web per mobile
Riformulazione completata
Etichette: Modifica da mobile Modifica da web per mobile
Riga 91:
 
== Suggerimenti di stile ==
* Usare 4il spazi[[tabulatore]] per l'[[indentazione]] e(vanno senzabene tabulazionianche (li 4 spazi utilizzati dall'[[Editor web|editor di codice]] di Wikipedia usa 4 spazi).
* Limitare la lunghezza di una singola riga così che persone con monitor più piccoli possano comunque leggere con facilità il codice. Una riga troppo lunga può essere spezzata su linee multiple con l'indentazione allineata alla parentesi di apertura. Le condizioni di un'istruzione <code>if</code> dovrebbero essere piazzate su una linea successiva.
* Evitare spazi inutili nelle chiamate di funzioni e tabelle o prima o dopo le parentesi di apertura (<code>[, (, {</code>) e di chiusura (<code>], ), }</code>).
Riga 108:
* Una '''lista di espressioni''' è un insieme di valori (stringhe, numeri, tabelle, funzioni, etc.) separati da virgole.
* Una '''sequenza''' è un insieme di valori che vanno da 1 a N (dove N è un intero positivo). Può essere creata racchiudendo tra parentesi graffe una lista di espressioni. Per esempio se <code>a = {1, "quotation", mw.ustring.gmatch( "abca", "a" ), {2, 3, 4}}</code> allora <code>a[1] = 1</code>, <code>a[2] = "quotation"</code>, <code>a[3]</code> equivale al valore restituito dalla funzione <code>gmatch</code> e <code>a[4]</code> è la tabella <code>{2, 3, 4}</code>. Una lista di espressioni può essere recuperata da una tabella con l'istruzione <code>unpack()</code>: <code>b, c, d = unpack(a)</code> restituirà <code>b = 1</code>, <code>c = "quotation"</code> e <code>d</code> alla funzione.
* Una '''tabella''' (o '''tavola''') è una sequenza supportata opzionalmente da chiavi con nome, per esempio <code>digit["two"] = "2"</code>. Va però ricordato che diverse funzioni come <code>table.concat</code> funzionanorichiedono soltanto connecessariamente gli indici numerici e ignorano questo tipo di chiavi.
* Una '''metatable''' offre un vasto insieme opzionale disvariati metodi per alterare il comportamento di una tabella. Permette anche di definiredefinirne una tabella in modo che sia richiamabile come una funzione.
 
== Funzioni ==
* Una funzione può ritornare qualunque tipo di variabile &mdash; , ''inclusa una funzione''. Questa è una caratteristica potente che può facilmentepotrebbe confondere un principiante. PerUn esempio è l'istruzione <code>a = mw.ustring.gmatch( text, "(.)" )</code> che assegnerà ad <code>a</code> una funzione, e non unil valore stringadi &mdash;una instringa. In questo caso unala funzione cheritornerà ad ogni volta che viene chiamata ritornerà uno dei caratteri della stringa <code>text</code> fino ad esaurirli ede a ritornaretornare <code>nil</code>. Molte [[Iteratore|funzioni iteratrici]] agiscono funzionanoproprio in questa maniera.
* PoteteÈ possibile mantenere i conteggi separati per funzioni iteratrici, usandoutilizzando variabili differenti. Per esempio con lL'istruzione <code>q = mw.ustring.gmatch( text, "(.)" )</code> potete estrarreestrarrà caratteri dalla stessa stringa dell'esempio precedente valutando <code>d = q()</code> senza che questo modifichi il comportamento di <code>a()</code>.
* Le funzioni cheda devonochiamare esserecol chiamate da un'istruzionecomando <code><nowiki>{{#invoke|...}}</nowiki></code> devono essere dellaaperte nella forma <code>p.myFunctionName</code>, dove <code>p</code> èindica la tabella che viene esportata al termine del modulo",. altreAltre funzioni sonosaranno locali al modulo e possono avere qualunque nome valido, ma non saranno accessibili dall'esterno del moduloprogramma.
 
== Pagine correlate ==