{"id":276,"date":"2021-08-27T09:12:21","date_gmt":"2021-08-27T07:12:21","guid":{"rendered":"https:\/\/workerbase.org\/wordpress\/?p=276"},"modified":"2021-11-20T16:01:27","modified_gmt":"2021-11-20T15:01:27","slug":"lua-tabelle","status":"publish","type":"post","link":"https:\/\/arkenidar.com\/wordpress\/2021\/08\/27\/lua-tabelle\/","title":{"rendered":"#Lua: tabelle"},"content":{"rendered":"\n<p>Luando#5: Qui parleremo delle tabelle, una facilitazione di Lua per gestire dati, e vi mostrer\u00f2 qualcosa a riguardo, anche se ha anche caratteristiche avanzate come le meta-tabelle che cito soltanto, qui.<\/p>\n\n\n\n<p>Alla base una tabella permette due cose: ancora una volta l&#8217;abbinamento tra <strong>lettura<\/strong> e <strong>scrittura<\/strong>, come per l&#8217;IO (Input e Output, ricordate?).<\/p>\n\n\n\n<p>Supponiamo di avere una tabella inizialmente vuota:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tabella1={}<\/code><\/pre>\n\n\n\n<p>Oppure una tabella inizialmente con qualche elemento:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tabella2={\"nord\",\"sud\",\"ovest\",\"est\"}<\/code><\/pre>\n\n\n\n<p>Vediamo che succede a leggerci e a scriverci:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>return tabella2[1] -- restituisce \"nord\"<\/code><\/pre>\n\n\n\n<p>Cosi come visto sopra si legge dalla tabella. Si usa la seguente sintassi: (sintassi? si, come per una grammatica analizzabile dal computer)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nome_tabella[chiave] -- restituisce il valore<\/code><\/pre>\n\n\n\n<p>Valori? Chiavi? Si, una tabella in senso astratto \u00e8 una <strong>associazione<\/strong> chiavi-valori, ogni chiave con il suo valore e ogni valore con la sua chiave (un p\u00f2 come ogni <strong>variabile<\/strong> ha il suo nome e il suo valore contenuto, anche valore nil).<\/p>\n\n\n\n<p>Questa che abbiamo vista era una tabella con chiavi di tipo intero: 1,2,3,4 sono le chiavi, avendo i 4 elementi (1:nord, 2:sud, 3:ovest, 4:est, nell&#8217;esempio sopra). Nota: in Lua il primo elemento a chiave numerica ha chiave 1 e non zero (altri linguaggi iniziano a contare da zero, in Lua si inizia contare da 1).<\/p>\n\n\n\n<p>Infatti passiamo alle associazioni con chiavi di tipo stringa (negli esempi precedenti le chiavi erano di tipo intero, numero intero):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tabella_stringhe={base=4.5, altezza=7}<\/code><\/pre>\n\n\n\n<p>Vedete? Molto simili alle assegnazioni delle variabili. Lo spiego: crea una tabella vuota (ovvero &#8220;{}&#8221; se ricordate) e pone la chiave chiamata &#8220;base&#8221; (chiave di tipo stringa!) al valore numerico &#8220;4.5&#8221; e la chiave &#8220;altezza&#8221; (stringa, non intero) al valore numerico &#8220;7&#8221; (vedi sopra, sintassi stile assegnazioni di variabili).<\/p>\n\n\n\n<p>Infatti scoprirete che le variabili in Lua usano le tabelle, ma non vorrei confondervi. Dicevamo: leggere dati e scrivere dati.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nome_tabella[chiave] -- restituisce il valore\nnome_tabella[chiave]=valore -- assegna un valore<\/code><\/pre>\n\n\n\n<p>Se vi sembra <strong>inizialmente<\/strong> complicato ricordatevi soltanto di queste due sintassi, per leggere un valore la prima, per scrivere un valore la seconda. Nota: anche le variabili possono essere sia lette che scritte:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>variabile1=\"valore1\" -- scrive in variabile1\nreturn variabile1 -- legge da variabile1 per restituirlo mediante return<\/code><\/pre>\n\n\n\n<p>In breve il solo nome permette di leggere il valore, il nome con un &#8220;=&#8221; di assegnazione associa un valore a quel nome. Associa. Sia nel caso delle variabili che delle tabelle si tratta di associazioni, sebbene temporanee perch\u00e8 ri-assegnabili (per questa variabilit\u00e0 si parla di variabili).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>local triangolo={base=4.5, altezza=7} -- dati_triangolo\nreturn (triangolo.base*triangolo.altezza)\/2<\/code><\/pre>\n\n\n\n<p>Ecco un&#8217;altra sintassi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>nome_tabella.chiave<\/strong> -- restituisce il valore\nnome_tabella[chiave] -- restituisce il valore<\/code><\/pre>\n\n\n\n<p>La sintassi con il &#8220;.&#8221; punto \u00e8 adatta per\u00f2 <strong>soltanto<\/strong> alle chiavi di tipo stringa (ma senza spazi eheh). Queste due sintassi si equivalgono in questo caso mostrato:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>triangolo.base -- con il \".\" punto per le chiavi stringa senza spazi\ntriangolo[\"base\"] -- con le parentesi quadre <strong>generiche<\/strong><\/code><\/pre>\n\n\n\n<p>Per il momento basta cos\u00ec ma ricordate che con le <strong>parentesi quadre<\/strong> avendo la &#8220;chiave&#8221; potete fare riferimento a un valore contenuto nella tabella, sia per poterlo leggere (e usare) sia per poterlo scrivere (e modificare).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Luando#5: Qui parleremo delle tabelle, una facilitazione di Lua per gestire dati, e vi mostrer\u00f2 qualcosa a riguardo, anche se ha anche caratteristiche avanzate come le meta-tabelle che cito soltanto, qui. Alla base una tabella permette due cose: ancora una volta l&#8217;abbinamento tra lettura e scrittura, come per l&#8217;IO (Input e Output, ricordate?). Supponiamo di [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,22],"tags":[16],"class_list":["post-276","post","type-post","status-publish","format-standard","hentry","category-coding","category-computer","tag-luascript"],"_links":{"self":[{"href":"https:\/\/arkenidar.com\/wordpress\/wp-json\/wp\/v2\/posts\/276","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arkenidar.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arkenidar.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arkenidar.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/arkenidar.com\/wordpress\/wp-json\/wp\/v2\/comments?post=276"}],"version-history":[{"count":14,"href":"https:\/\/arkenidar.com\/wordpress\/wp-json\/wp\/v2\/posts\/276\/revisions"}],"predecessor-version":[{"id":291,"href":"https:\/\/arkenidar.com\/wordpress\/wp-json\/wp\/v2\/posts\/276\/revisions\/291"}],"wp:attachment":[{"href":"https:\/\/arkenidar.com\/wordpress\/wp-json\/wp\/v2\/media?parent=276"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arkenidar.com\/wordpress\/wp-json\/wp\/v2\/categories?post=276"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arkenidar.com\/wordpress\/wp-json\/wp\/v2\/tags?post=276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}