Comprensione e utilizzo di funzioni e procedure

sviluppatore web femminile che lavora al computer

Maskot/Getty Images





Ti sei mai trovato a scrivere lo stesso codice più e più volte per eseguire alcune attività comuni all'internogestori di eventi? Sì! È tempo per te di conoscere i programmi all'interno di un programma. Chiamiamo subroutine quei mini-programmi.

Introduzione alle subroutine

Le subroutine sono una parte importante di qualsiasi linguaggio di programmazione , e Delfi non fa eccezione. In Delphi, ci sono generalmente due tipi di subroutine: una funzione e una procedura. La solita differenza tra una funzione e una procedura è che una funzione può restituire un valore e una procedura generalmente non lo farà. Una funzione viene normalmente chiamata come parte di un'espressione.



Dai un'occhiata ai seguenti esempi:

|_+_|

Una volta definite le subroutine, possiamo chiamarle una o più volte:



|_+_|

Funzioni e procedure

Come possiamo vedere, sia le funzioni che le procedure agiscono come mini-programmi. In particolare, possono avere al loro interno le proprie dichiarazioni di tipo, costanti e variabili.

Dai un'occhiata più da vicino a una (varia) funzione SomeCalc:

|_+_|

Ogni procedura o funzione inizia con a intestazione che identifica la procedura o la funzione ed elenca i parametri la routine utilizza se del caso. I parametri sono elencati tra parentesi. Ogni parametro ha un nome identificativo e di solito ha un tipo. Un punto e virgola separa l'uno dall'altro i parametri in un elenco di parametri.

Vengono chiamati sStr, iYear e iMonth parametri costanti . I parametri costanti non possono essere modificati dalla funzione (o procedura). L'iDay è passato come a era parametro , e possiamo apportare modifiche ad esso, all'interno della subroutine.



Le funzioni, poiché restituiscono valori, devono avere a tipo di ritorno dichiarato alla fine dell'intestazione. Il valore di ritorno di una funzione è dato dall'assegnazione (finale) al suo nome. Poiché ogni funzione ha implicitamente una variabile locale Risultato dello stesso tipo del valore restituito dalle funzioni, l'assegnazione a Risultato ha lo stesso effetto dell'assegnazione al nome della funzione.

Posizionamento e chiamata di subroutine

Le subroutine sono sempre collocate nella sezione di implementazione dell'unità. Tali subroutine possono essere chiamate (utilizzate) da un gestore di eventi o da una subroutine nella stessa unità definita dopo di essa.



Nota: la clausola usa di un'unità indica quali unità può chiamare. Se vogliamo che una specifica subroutine in una Unit1 sia utilizzabile dai gestori di eventi o subroutine in un'altra unità (diciamo Unit2), dobbiamo:

  • Aggiungi Unit1 alla clausola sugli usi di Unit2
  • Posizionare una copia dell'intestazione della subroutine nella sezione dell'interfaccia dell'Unità1.

Ciò significa che le subroutine le cui intestazioni sono fornite nella sezione dell'interfaccia lo sono portata globale .



Quando chiamiamo una funzione (o una procedura) all'interno della sua stessa unità, usiamo il suo nome con qualunque cosa parametri sono necessari. D'altra parte, se chiamiamo una subroutine globale (definita in qualche altra unità, ad esempio MyUnit) usiamo il nome dell'unità seguito da un punto.

|_+_|

Nota: le funzioni o le procedure possono avere le proprie subroutine integrate al loro interno. Una subroutine incorporata è locale alla subroutine contenitore e non può essere utilizzata da altre parti del programma. Qualcosa di simile a:



|_+_|