Successivo: Impostare elementi, Precedente: Introduzione ai vettori, Su: Fondamenti sui vettori [Contenuti][Indice]
Il modo principale di usare un vettore è quello di esaminare uno dei suoi elementi. Un riferimento al vettore è un’espressione come questa:
vettore[espressione-indice]
Qui, vettore è il nome di un vettore. L’espressione espressione-indice è l’indice dell’elemento del vettore che si vuol esaminare.
Il valore del riferimento al vettore è il valore corrente di quell’elemento
del vettore. Per esempio, pippo[4.3]
è un’espressione che richiama
l’elemento del vettore pippo
il cui indice è ‘4.3’.
Un riferimento a un elemento di un vettore il cui indice non esiste ancora
restituisce un valore uguale a ""
, la stringa nulla. Questo comprende
elementi a cui non è stato assegnato un valore ed elementi che sono stati
eliminati (vedi la sezione L’istruzione delete
).
NOTA: Un riferimento a un elemento inesistente crea automaticamente quell’elemento di vettore, con la stringa nulla come valore. (In certi casi, ciò è indesiderabile, perché potrebbe sprecare memoria all’interno di
awk
.)I programmatori principianti di
awk
fanno spesso l’errore di verificare se un elemento esiste controllando se il valore è vuoto:# Verifica se "pippo" esiste in a: Non corretto! if (a["pippo"] != "") …Questo è sbagliato per due motivi. Primo, crea
a["pippo"]
se ancora non esisteva! Secondo, assegnare a un elemento di un vettore la stringa vuota come valore è un’operazione valida (anche se un po’ insolita).
Per determinare se un elemento con un dato indice esiste in un vettore, si usi la seguente espressione:
indice in vettore
Quest’espressione verifica se lo specifico indice indice esiste, senza
l’effetto collaterale di creare quell’elemento nel caso che esso non sia
presente. L’espressione ha il valore uno (vero) se
vettore[indice]
esiste e zero (falso) se non esiste.
Per esempio, quest’istruzione verifica se il vettore frequenze
contiene l’indice ‘2’:
if (2 in frequenze) print "L'indice 2 è presente."
Si noti che questo non verifica se il vettore
frequenze
contiene un elemento il cui valore è 2.
Il solo modo far questo è quello di passare in rassegna tutti gli
elementi. Inoltre, questo non crea frequenze[2]
, mentre la
seguente alternativa (non corretta) lo fa:
if (frequenze[2] != "") print "L'indice 2 è presente."
Successivo: Impostare elementi, Precedente: Introduzione ai vettori, Su: Fondamenti sui vettori [Contenuti][Indice]