Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Impariamo ad usare le funzioni

Breve introduzione all'uso di questo fondamentale costrutto di programmazione
Breve introduzione all'uso di questo fondamentale costrutto di programmazione
Link copiato negli appunti

Un precedente articolo faceva riferimento a come Impariamo ad usare le procedure, chiamate anche comunemente sub. Vediamo invece ora come usare le "sorelle minori" di questi costrutti di programmazione, ovvero le funzioni. Il vantaggio delle funzioni è quello di ottimizzare la scrittura del codice, evitando di ripetere elenchi di istruzioni utilizzati frequentemente, con la possibilità di restituire un valore.

Creare una funzione

Per creare una funzione possiamo usare la sintassi:

[public | private ] function nomefunzione([parametro1, Parametro2, ParametroN])
' corpo della funzione
end function

public o private

public estende il raggio di azione della funzione anche al di fuori della classe o ruotine di appartenenza, mentre private mantiene visibile la funzione solo alle variabili e funzioni interne. Omettendolo nella dichiarazione, il valore viene impostato automaticamente su public.

function

Dichiara che quella è una funzione.

nomefunzione

Il nome della funzione. Sono consentiti unicamente lettere, numeri (purchè non all'inizio del nome) e caratteri di sottolineatura.

parametri

Possono essere passati dei parametri alla funzione in fase di chiamata. Questi parametri devono essere definiti precedentemente, separati da una virgola. Nel caso la funzione non abbia parametri, è necessario insere comunque le parentesi tonde vuote ().

NB. ASP + VBScript non accetta l'overloading delle funzioni. Questo significa che, a differenza di altri linguaggi, non è possibile definire più metodi con lo stesso nome, anche se differiscono nel tipo e numero di parametri.

Esempio:

Function leggi_ora()
' codice
End function

Function leggi_ora(unadata)
' codice
End function

Il tipo di definizione sopra genera errore. È necessario dichiarare i metodi separatamente.

Function leggi_ora_corrente()
' codice
End function

Function leggi_ora(unadata)
' codice
End function

end function

Determina la fine della funzione.

Restituire il valore

Caratteristica fondamentale di una funzione è quella di restituire un valore. Per restituire un valore, con ASP + VBScript, è sufficiente assegnare il valore da restituire al nome della variabile, come ultima istruzione.

Il nome della funzione deve essere specificato senza parentesi ed eventuali parametri:

nomefunzione = valoredarestituire

e non ad esempio:

nomefunzione(parametro) = valoredarestituire

Richiamare una funzione

Siccome una funzione restituisce un valore, è necessario prevedere in fase di richiamo una collocazione per il valore restituito.

Possiamo decidere di:

  • Assegnare il valore ad una variabile
  • Assegnare il valore ad un'ulteriore funzione

La chiamata della funzione avviene semplicemente mediante:

nomefunzione(parametri)

Ma ricordandoci quanto prima detto, la sintassi completa è:

' assegnazione ad una variabile
variabile = nomefunzione() ' funzione senza parametri
variabile = nomefunzione(parametro) ' funzione con un parametro
variabile = nomefunzione(parametro, parametro) ' funzione con più parametri

' assegnazione ad una funzione, esempio la stampa
Response.Write(nomefunzione())
' la gestione dei parametri segue l'esempio sopra

Esempio pratico

Per esempio proviamo a scrivere una funzione che ci permetta, data una somma di denaro ed un valore percentuale, di calcolare e restituire il risultato del prodotto ivato.

function calcola_iva(somma, percentuale)

Dichiariamo la funzione, a cui passeremo come parametro la somma su cui calcolare l'iva ed il valore d'iva da calcolare.

Dim totale, iva

Dichiariamo le variabili interne che desideriamo usare per l'elaborazione. Attenzione. Queste variabili non saranno visibili all'esterno della funzione.

if IsNumeric(somma) AND IsNumeric(percentuale) then

Controlliamo che entrambi i valori della somma e della percentuale siano numerici e proseguiamo con l'elaborazione ed il calcolo.

else
totale = -1
end if

Nel caso i valori non siano numerici, possiamo prevedere di restituire un valore predefinito, ad esempio -1.

calcola_iva = totale

Non dimentichiamo alla fine di assegnare il valore di ritorno. Ecco come si presenta la funzione finale:

function calcola_iva(somma, percentuale)

Dim totale, iva

if IsNumeric(somma) AND IsNumeric(percentuale) then
iva = (somma / 100) * percentuale
totale = somma + iva
else
totale = -1
end if

calcola_iva = totale

end function

Che potrà essere richiamata nel codice, quando necessario, semplicemente con la sintassi:

' stampa il totale ...
Response.Write(calcola_iva(3000, 20))
' ... oppure assegna il totale ad una variabile
totale = calcola_iva(3000, 20)

Ti consigliamo anche