Array e iteratori
Scriviamo un programma che ci chiede di digitare quante parole vogliamo (una parola per riga, continuando fino a che non si preme Invio su una riga vuota), e che quindi riscrive le parole in ordine alfabetico. OK?
Allora... per prima cosa... um... hmmm... Bene, potremmo... um...
Sapete una cosa.... credo che non siamo in grado di farlo. Ci serve un modo per conservare un numero indefinito di parole, eun modo per tenere traccia di tutte le parole allo stesso momento, so they don't get mixed up with other variables. Dobbiamo metterle in una specie di lista. Ci servono gli array.
Un array è una lista per il nostro computer. Ogni elemento della lista si comporta come una variabile: è possibile vedere a quale oggetto un elemento punta, ed è possibile farlo puntare ad un altro oggetto. Diamo uno sguardo ad alcuni array:
[]
[5]
['Hello', 'Goodbye']
flavor = 'vanilla' # Ovviamente questo non è un array
[89.9, flavor, [true, false]] # ...ma questo lo è
Il primo è un array vuoto, poi ce ne è uno che contiene un singolo numero e poi ancora un array con due stringhe. Abbiamo dopo un semplice assegnamento e infine un array con tre oggetti l'ultimo dei quali è l'array [true, false]. Ricordate, le variabili non sono oggetti, quindi in realtà punta ad un decimale, a una stringa e a un array. Anche se facciamo puntare flavor a qualcos'altro l'array non cambierà .
Per aiutarci a trovare un particolare oggetto in un array ad ogni elemento è assegnato un indice numerico. I programmatori (e, incidentalmente, molti matematici) iniziano a contare dallo zero, e così il primo elemento di un array ha indice zero. Ecco come fare riferimento ad un oggetto in un array:
nomi = ['Ada', 'Belle', 'Chris']
puts nomi
puts nomi[0]
puts nomi[1]
puts nomi[2]
puts nomi[3] # Questo è fuori range.
Ada
Belle
Chris
Ada
Belle
Chris
nil
Allora, si vede che puts nomi stampa ogni nome dell'array. Mentre si usa puts nomi[0] per stampare il "primo" nome dell'array, e puts nomi[1] per stampare il "secondo"...
...continua
Comments (0)
You don't have permission to comment on this page.