Finora hai imparato come creare costanti e variabili per archiviare e utilizzare i valori e come prendere decisioni nel codice utilizzando l'espressione if e operatori decisionali come and e or.
Ora è il momento di imparare a scrivere codice che si può riutilizzare facilmente nel programma.
Ricordi nella Lezione 2 quando imparato che un'espressione è la più piccola unità di codice che produce un risultato? E che quando un'espressione esegue e restituisce un valore il valore che produce è il risultato stesso?
Puoi sfruttare queste nozioni per rendere ancora più efficiente il tuo codice.
Le espressioni si possono combinare con altre espressioni per creare funzioni e le funzioni si possono utilizzare più e più volte nel codice senza riscrivere ogni volta ciò che fanno.
Utilizzo delle espressioni nelle funzioni
Una funzione (nota anche come routine) è un codice riutilizzabile che fornisce istruzioni per eseguire un'azione o per creare un output basato sull'input.
Le funzioni sono costituite da espressioni combinate.
Per definire una funzione, è necessario:
- Un nome univoco o identificatore.
- Il tipo di informazioni che ne risulterà.
- Che cosa farà la funzione quando viene chiamata.
Questa è la sintassi di base per una funzione:
name() : type =
codeblock
Ulteriori informazioni sui blocchi di codice verranno fornite nella prossima lezione, ma per ora è sufficiente sapere che il blocco di codice è il luogo in cui verranno inserite le espressioni utilizzate per creare la funzione.
Funzioni e chiamate di funzione
Una funzione è fondamentalmente una sequenza di espressioni che hai nominato.
Un programma utilizza una funzione chiamando quella funzione con il suo nome. La chiamata richiama (attiva) tale funzione. Questa è una chiamata di funzione.
Ciò significa che invece di ripetere tutte le espressioni inserite in una funzione più volte, è possibile raggrupparle insieme nella funzione nominata, quindi ogni volta che si chiama quella funzione nel programma, il computer fa riferimento a quella funzione ed esegue le espressioni in essa contenute.
Ad esempio, invece di CoinsPerMousetrap che ha sempre il valore 100, è possibile scrivere codice che cambierebbe il valore scegliendo un valore casuale ogni volta che viene eseguito.
Nell'esempio seguente, l'espressione è impostata per generare un numero casuale da uno a dieci utilizzando l'espressione GetRandomInt(1, 10).
Ecco come si suddivide:
GetRandomInt() |
Questa è una funzione incorporata in Verse che, come suggerisce il nome, genera un numero intero casuale. |
1, 10 |
Mostra l'intervallo numerico in cui può avvenire la generazione. Se utilizzassi 20, 50, genererebbe un numero da venti a cinquanta. Tieni presente che l'intervallo che va all'interno di (), che fa parte del nome di questa espressione. |
Questa è una chiamata di funzione perché indica al computer di chiamare la funzione che ottiene un numero intero casuale nell'intervallo impostato da 1 a 10.
Quando si desidera utilizzare una funzione nel codice, è possibile chiamare la funzione per nome. Ogni volta che chiami GetRandomInt(), viene generato un nuovo numero casuale.
Puoi utilizzarlo per cambiare casualmente il prezzo di una trappola per topi:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Random }
OnBegin<override>()<suspends> : void =
# Inizializza le monete a 500. Poiché è una var, puoi cambiarlo più tardi.
var Coins : int = 500
# Inizializza CoinsPerMousetrap con un numero intero casuale compreso tra 1 e 100
CoinsPerMousetrap : int = GetRandomInt(1, 100)
# Stampa il valore corrente delle monete (500) nel registro.
Print("Le monete iniziano da {Coins}.")
# Diminuisce le monete con CoinsPerMousetrap e stampa il nuovo valore nel registro.
set Coins = Coins - CoinsPerMousetrap
Print("Dopo l'acquisto di una trappola per topi, le monete sono {Coins}.")
Tieni presente che quasi ogni riga di codice nell'esempio precedente è accompagnata da un commento che spiega la sua funzione. Questo è utile sia per te quando torni a rivedere il tuo codice dopo un po' di tempo, sia per tutti gli altri programmatori che vogliono aggiungere o modificare il codice che hai scritto.
Metodi
Ricordi nella Lezione 2 quando hai imparato come un tipo definisce quali operazioni si possono eseguire su valori memorizzati in una variabile o costante? Ci sono anche altre cose che fanno i tipi.
Allo stesso modo in cui i tipi hanno operazioni che gli appartengono, hanno anche funzioni che gli appartengono. Queste funzioni sono note come metodi e devono essere chiamate in un modo speciale.
Invece di chiamarle semplicemente scrivendo il nome (come Print() o GetRandomInt()) una chiamata al metodo deve iniziare con il nome di una variabile (o costante) seguito da un ., quindi il nome del metodo. Ad esempio, una chiamata al metodo Pounce() su una variabile Cat sarebbe simile a quanto segue:
Cat.Pounce()
Classi
Una classe è un modello che si può utilizzare per creare cose con comportamenti e proprietà simili. Una classe è di tipo composito, il che significa che è costituita da un bundle di dati di altri tipi.
Quando si definisce una classe, i dati di tale classe possono essere ereditati da qualsiasi sottoclasse.
Un metodo, quindi, è una funzione associata a una classe. Per questo motivo, non tutti i metodi funzionano con tutti i tipi. Il metodo deve essere dichiarato nella definizione della classe per quel tipo o in una classe da cui eredita il tipo. Se quanto illustrato può sembrarti ancora confuso, non preoccuparti: questa è solo una rapida introduzione e avrai maggiori informazioni nelle lezioni seguenti.
Riepilogo
- Una funzione è una sequenza denominata di espressioni che si possono riutilizzare.
- Le funzioni sono note anche come routine.
- Le funzioni consentono di risparmiare tempo e ridurre gli errori poiché evitano di dover digitare ripetutamente (o mantenere) più righe dello stesso codice.
- Quando si riutilizza una funzione in una riga di codice, lo si fa con una chiamata di funzione.
- Un metodo è una funzione che appartiene a un determinato tipo e deve essere chiamata su una variabile o costante di quel tipo.
- Le Classi sono tipi compositi che consentono di combinare dati di altri tipi e condividere i comportamenti e le proprietà con sottoclassi