Input è un'informazione aggiunta a un programma e utilizzata dal codice per apportare modifiche.
Gli esempi di funzioni forniti nella lezione precedente non hanno richiesto alcun input:
GetNumberOfMousetrapsYouCanAfford() : int
Lo sai perché le parentesi () nella firma della funzione sopra sono vuote.
Parametri
È possibile definire l'input necessario per una funzione aggiungendo un parametro alla firma della funzione.
Un parametro è una costante dichiarata nella firma di funzione tra parentesi. Quando viene impostato un parametro, è possibile utilizzarlo nel corpo della funzione.
La sintassi di una funzione che include un parametro è simile alla seguente:
name(parameter : type) : type =
codeblock
Nell'esempio seguente, CoinsPerMousetrap è ora un parametro per la funzione BuyMousetrap():
var Coins : int = 500
BuyMousetrap(CoinsPerMousetrap : int) : void =
set Coins = Coins - CoinsPerMousetrap
Print("Trappola per topi acquistata! Hai ancora {Coins} monete.")
Ciò che questo codice sta dicendo è:
- Hai una variabile chiamata
Coinscon un valore intero iniziale di 500:var Coins : int = 500. - La funzione chiamata
BuyMousetrap()accetta un parametro diCoinsPerMousetrap. Tuttavia, non vuoi che questa funzione restituisca un valore, quindi il tipo èvoid.
Argomenti
Quando si chiama una funzione che prevede parametri, è necessario assegnare valori ai parametri nello stesso modo in cui si assegnano valori alle costanti.
Questi valori assegnati per le funzioni sono chiamati argomenti per la funzione.
Per chiamare la funzione BuyMousetrap() è necessario aggiungere un argomento all'interno delle parentesi. Ci sono alcuni modi per farlo.
Ad esempio:
-
È possibile utilizzare
BuyMousetrap(CoinsPerMousetrap := 10)che imita il modo in cui si definiscono i parametri per la funzione. 10 è un argomento della funzione e modifica il valore del risultato. -
- Ricordi i valori letterali della lezione 2 e della lezione 3? Puoi utilizzare anche un valore letterale dello stesso tipo del parametro.
- Un terzo modo consiste nell'utilizzare una variabile o una costante precedentemente dichiarata come argomento. Puoi chiamare la funzione utilizzando valori diversi per l'argomento e ottenere risultati diversi.
var Coins : int = 500
# Dopo questa chiamata, Coins è 490
BuyMousetrap(CoinsPerMousetrap := 10)
# Dopo questo chiamata, Coins è 485
BuyMousetrap(5)
CoinsPerMouseTrap : int = 20
# Dopo questo chiamata, Coins è 465
BuyMousetrap(CoinsPerMousetrap)
Parametri multipli
Puoi definire tutti i parametri desiderati per la funzione a patto che i parametri siano separati da virgole.
La sintassi di una funzione con due parametri è simile alla seguente:
name(parameter : type, parameter : type) : type =
codeblock
Quando chiami la funzione, è necessario separare di nuovo gli argomenti con virgole che imitano il modo in cui si definiscono i parametri della funzione.
Riepilogo
- Un parametro è una costante dichiarata nella firma della funzione. È tra parentesi.
- Un argomento è il valore assegnato alla costante utilizzata nel parametro per quella funzione.
- Devi separare più parametri in una singola funzione con virgole.