SOFTWARE > Linguaggi di programmazione e scripting

[Hollywood] Le funzioni

(1/1)

Allanon:
Una caratteristica importantissima di ogni linguaggio sono le funzioni, dei "pezzi" di codice che prendono in ingresso dei parametri e restituiscono dei risultati, o semplicemente elaborano delle informazioni senza restituire nulla.

In Hollywood le funzioni vengono dichiarate con il seguente schema:

--- Codice: ---Function nome_funzione(parametri)
   ...codice...
   Return(risultati)
EndFunction

--- Termina codice ---

<parametri> non sono obbligatori, una funzione può essere invocata anche senza parametri
<Return(risultati)> questo comando si occupa di restituire i valori e ad uscire immediatamente dalla funzione, può anche essere utilizzato per uscire dalla funzione senza restituire nulla omettendo di specificare dei risultati

Piccolo esempio:

--- Codice: ---Function Add(a, b)
   Return(a+b)
EndFunction

--- Termina codice ---

Ma, passiamo ad alcune caratteristiche più interessanti  :ugeek:
------------------------------------------------------------------------
LE FUNZIONI SONO VARIABILI
Esattamente: tutte le funzioni sono trattate come variabili all'interno di Hollywood, compresi i comandi interni di Hollywood. Ma cosa significa questo?
Prendiamo il comando DebugPrint() che stampa una stringa sulla console, se io faccio:

--- Codice: ---DebugPrint("Ciao baldi giovani!")
Local myPrint = DebugPrint
myPrint("Che figata!")

--- Termina codice ---
Con l'assegnazione alla seconda riga abbiamo fatto si che la variabile <myPrint> sia diventata la funzione <DebugPrint>  :D

Questo concetto apre molti orizzonti di programmazione, e qui darò solo un'idea di cosa si può fare con questo concetto.
Immaginiamo un programma che deve disegnare delle forme usando diverse tecniche di disegno, definiamo le funzioni che disegnano con queste diverse tecniche:

--- Codice: ---Function rendering_method1()
   ...
EndFunction

Function rendering_method2()
   ...
EndFunction

Function rendering_method3()
   ...
EndFunction

Local renderer = rendering_method1

--- Termina codice ---

Dopodichè abbiamo la nostra funzione di disegno delle forme:

--- Codice: ---Function render_shapes()
   ...
   renderer()
   ...
EndFunction

--- Termina codice ---

Infine abbiamo una funzione per impostare il metodo di rendering, che potremmo utilizzare nelle preferenze del nostro programma per cambiare metodo di rendering:

--- Codice: ---Function set_render_method(num)
   If num = 1
      renderer = render_method1
   ElseIf num = 2
      renderer = render_method2
   Else
      renderer = render_method3
   EndIf
EndFunction

--- Termina codice ---

Non è una figata? :lol:

Prossimi argomenti sulle funzioni:
- Funzioni con numero variabile di argomenti
- Tabelle di Funzioni

Navigazione

[0] Indice dei post

Vai alla versione completa