Successivo: Funzioni numeriche, Su: Funzioni predefinite [Contenuti][Indice]
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: Funzioni numeriche, Su: Funzioni predefinite [Contenuti][Indice]