Hai preso la lista?

No, non stiamo andando a fare la spesa ma le liste hanno un' importanza fondamentale all'interno del nostro codice. Servono per salvare, organizzare, richiamare i nostri dati quando questi sono formati da più elementi; e chissà quante cose a me ancora oscure. Possono trattare vari tipi di dati, dalle variabili, ai semplici numeri, da stringhe lunghissime a semplici parole, alcuni blocchi reinterpretano anche alcuni formati particolari come per esempio CSV (comma-separated value).
Iniziamo a vedere i vari blocchi anche se molti si spiegano da soli;
spesso solo iniziando ad usarli, magari combinati con altri elementi, si capisce a pieno l'importanza e si inizia ad usarli al massimo delle potenzialità.
Il primo (a) serve per creare una lista vuota ( sono bravo vero 😂) per esempio quando inizializziamo una variabile che dovrà ricevere in seguito come dati proprio una lista; e si, a seconda della variabile usata dovremo usare blocchi differenti ma lo vedremo in seguito.
Vi ricordate che alcuni blocchi hanno l'ingranaggio che ci permette di accedere ad altre funzioni o modificare le caratteristiche?
Il nostro amico si trasformerà nel secondo blocco (b) se usiamo l'ingranaggio e aggiungiamo altri "item", più elementi aggiungiamo più attacchi compariranno; naturalmente lo useremo se abbiamo un numero definito di elementi noti che vogliamo introdurre in una lista all'inizio di uno screen.
Altre volte avremo la necessità di chiederci se qualcosa (thing) è una lista ( per evitare blocchi dell'applicazione, alcune variabili devono essere posizionate nei posti giusti) quindi useremo il blocco (c) mentre i fratelli (d, e, f) ci serviranno rispettivamente per misurare la lunghezza di una lista ( magari per gestire le azioni reiterate ) , controllare se la lista è vuota o semplicemente per copiarla.
 Adesso iniziamo a fare sul serio, la nostra lista riceverà dei dati da aggiornare (immaginate una classifica) o da modificare e quindi avremo la necessità di aggiungere nuovi elementi (g) "item" ad una specifica "list"; in questo caso l'elemento sarà aggiunto alla fine della lista esistente oppure scegliere (h) in che posizione (index) vogliamo inserire il nostro elemento (item).
Possiamo anche sostituire (j) un elemento in una specifica posizione e il vecchio sarà eliminato, (j) prendere una lista e aggiungerla alla fine di un'altra ( list2 sarà posizionata alla fine di list1) o semplicemente eliminare un elemento dalla lista (k). Tutti blocchi di movimento che spesso saranno usati anche combinati insieme ad altri per individuare posizioni, grandezze, etc.
Ecco che ci vengono in aiuto il blocco di selezione (l) per specificare quale elemento andare a prelevare, oppure prelevarne uno a caso (m); magari lo useremo per un progetto di quiz per andare a selezionare di volta in volta una domanda nuova e non dimenticate di eliminarla dalla lista delle domande (k) per evitare che venga riproposta nuovamente nella stessa sessione di gioco. Un semplice esempio che vi ha fatto capire che vi serviranno più blocchi tra quelli visti fin'ora per il vostro quiz game.
 I vostri dati sono in continuo cambiamento e non sapete dove esattamente si trova il vostro elemento? Chiamatelo per nome "thing" (n) e magari vi dirà in che posizione si trova 😅 oppure se volete semplicemente sapere se si trova ancora in quella lista userete il blocco (o) , pensate per esempio la lista degli utenti on line e volete sapere se io sono collegato per potermi sfidare al vostro quiz.
Adesso si complicano le cose, spesso i dati non sono sempre semplici da gestire, possiamo riceverli da altri utenti che magari hanno usato metodi diversi o programmi diversi; dati salvati in tabelle o fogli di calcolo, oppure noi vogliamo salvare semplici dati presenti in una lista per essere visionati come tabella o in un foglio Excel. Ecco che ci vengono in soccorso i famosi dati separati da virgola (csv), anche se non sono sicuro vengano in pace 😂.
Se vogliamo trasformare i nostri dati in formato csv possiamo utilizzare i blocchi (p)(q) sia che li vogliamo organizzare il righe (p) sia in tabella (q).
Il primo prende una lista (a b c d ) e restituisce il corrispettivo csv ( "a" ,"b","c","d"), capirete bene che analizzare ed usare questi due tipi di dati non è così banale se non ci fosse questo comando automatico che passa dall'uno all'altro.
Il secondo codifica gli elementi in modo che una lista venga vista come una riga della futura tabella, anche i dati iniziali dovranno avere un formato ben preciso che saranno liste formate di liste, ricodificando tutti questi dati le varie righe andranno a comporre la tabella.
Nel caso opposto (r) avremo un csv ( "a" ,"b","c","d") e lo trasformeremo in una lista (a b c d ) facilmente comprensibile dal nostro Thunkable. Lo stesso avverrà con dati provenienti da tabelle in formato csv che saranno tramutati in liste (s). Immaginiamo adesso di avere tante coppie di dati salvati in una lista, quindi ancora una lista di lista ( (a Andrea) (b Biagio) (c Carlo)(c Chiara)) , possiamo fare una ricerca all'interno di queste coppie usando una parola chiave (key) e ci verrà restituito il secondo elemento della prima coppia trovata. Es. Se cerchiamo usando la lettera c come chiave avremo come risultato Carlo. Nel caso la ricerca non porti nessun risultato avremo come risposta "not found" in questo caso ma possiamo personalizzare il messaggio a nostro piacimento.

Commenti

Ciao, spero ti piaccia il blog. Se ti fa piacere qui puoi offrirmi un caffè!

Post popolari in questo blog

GOOGLE SCRIPT & KODULAR READ, WRITE, UPDATE, DELETE

| Quiz | #1

App Inventor & Google Sheets