Successivo: , Su: Funzioni predefinite   [Contenuti][Indice]


9.1.1 Chiamare funzioni predefinite

Per chiamare una delle funzioni predefinite di awk, si scrive il nome della funzione seguito dai suoi argomenti racchiusi tra parentesi. Per esempio, ‘atan2(y + z, 1)’ è una chiamata alla funzione atan2() e ha due argomenti.

La presenza di spazi bianchi tra il nome della funzione predefinita e la parentesi aperta è consentita, ma è buona norma quella di evitare di inserire spazi bianchi in quella posizione. Le funzioni definite dall’utente non consentono che vi siano spazi bianchi fra nome funzione e aperta parentesi, ed è più semplice evitare errori seguendo una semplice convenzione che resta sempre valida: non inserire spazi dopo il nome di una funzione.

Ogni funzione predefinita accetta un certo numero di argomenti. In alcuni casi, gli argomenti possono essere omessi. I valori di default per gli argomenti omessi variano da funzione a funzione e sono descritti insieme a ciascuna funzione. In alcune implementazioni di awk, gli eventuali argomenti in più specificati per le funzioni predefinite sono ignorati. Tuttavia, in gawk, è un errore fatale fornire argomenti in più a una funzione predefinita.

Quando si richiama una funzione viene calcolato, prima di effettuare la chiamata, il valore assunto dalle espressioni che descrivono i parametri da passare alla funzione. Per esempio, nel seguente frammento di codice:

i = 4
j = sqrt(i++)

la variabile i è incrementata al valore cinque prima di chiamare la funzione sqrt() alla quale viene fornito come parametro il valore quattro. L’ordine di valutazione delle espressioni usate come parametri per la funzione è indefinito. Per questo motivo, si deve evitare di scrivere programmi che presuppongono che i parametri siano valutati da sinistra a destra o da destra a sinistra. Per esempio:

i = 5
j = atan2(++i, i *= 2)

Se l’ordine di valutazione è da sinistra a destra, i assume dapprima il valore 6, e quindi il valore 12, e la funzione atan2() è chiamata con i due argomenti 6 e 12. Ma se l’ordine di valutazione è da destra a sinistra, i assume dapprima il valore 10, e poi il valore 11, e la funzione atan2() è chiamata con i due argomenti 11 e 10.


Successivo: , Su: Funzioni predefinite   [Contenuti][Indice]