2.9 Variabili locali
Si noti che, nell’esempio precedente, abbiamo passato l’argomento deck
alla funzione shuffle()
, perché questo è il nome del data.frame che
volevamo manipolare. Nella definizione della funzione shuffle()
, però,
l’argomento della funzione era chiamato cards
. Il nome degli argomenti
è diverso nei due casi. Allora perché l’istruzione shuffle(deck)
non
dà un messaggio d’errore?
La risposta a questa domanda è che nelle funzioni le variabili nascono
quando la funzione entra in esecuzione e muoiono al termine
dell’esecuzione della funzione. Per questa ragione, sono dette ‘locali’.
La variabile cards
, in questo esempio, esiste soltanto all’interno
della funzione. Dunque non deve (necessariamente) avere lo stesso nome
di un altro oggetto che esiste al di fuori della funzione, nello spazio
di lavoro di R (anzi, è meglio se il nome degli oggetti usati
all’interno delle funzioni è diverso da quello degli oggetti che
esistono fuori dalle funzioni). R sa che l’oggetto deck
passato a
shuffle()
corrisponde a cards
all’interno della funzione perché
assegna il nome cards
a qualunque oggetto venga passato alla funzione
shuffle()
come primo (e, in questo caso, unico) argomento.