venerdì 12 maggio 2017

Gli array, una precisazione

Ho sempre usato gli array di livecode, monodimensionale e pluridimensionali, ma ancora non mi ero accorto di alcune peculiarità.
Se inserite un valore in un array tipo arr[Rossi] e poi inserite un secondo valore in arr[Rossi][Mario], ciò che è contenuto in arr[Rossi] si cancella perchè arr[Rossi] diventa un contenitore di un altro array: il suo secondo livello, con chiavi e valori.

Esempio

put "cognome" into arr["Rossi"]
put "nome marito" into arr["Rossi"]["Mario"]
put "nome moglie" into arr["Rossi"]["Anna"]

il valore di arr["Rossi"] non è più la stringa "cognome", ma un array con le chiavi "Mario" e "Anna".
Questo modalità può tornare utile quando dobbiamo lavorare solo una parte di un array, perchè così possiamo inviarne solo una parte, ad esempio:

put "nome marito" into arr["Rossi"]["Mario"]
put "nome moglie" into arr["Rossi"]["Anna"]
elencaArr arr["Rossi"]

on elencaArray tArr
   put the keys of tarr
end elencaArray

mostrerà solo Mario e Anna, perchè il messaggio elencaArray vede solo:
  • tArr["Mario"]
  • tArr["Anna"]
Se avete ulteriori dubbi, chiedeteli nei commenti.