Inoltre, se il mio argomento e parametro sono lo stesso valore posso usare lo stesso identificatore per entrambi? Grazie
Inoltre, se il mio argomento e parametro sono lo stesso valore posso usare lo stesso identificatore per entrambi? Grazie
Questa distinzione è importante quando vuoi parlare della definizione di un parametro (un parametro formale ) rispetto al valore che viene passato in quella definizione quando viene chiamata la funzione (un argomento ).
Puoi usare gli stessi identificatori per entrambi? Sì, a condizione che tu comprenda la differenza tra passaggio per valore e passaggio per riferimento. Se stai passando per valore, l'identificatore che usi per il tuo argomento non fai riferimento allo stesso dato dell'identificatore usato dal tuo parametro formale, anche se hai usato lo stesso nome. Questo perché i dati nell'argomento originale vengono copiati e la copia viene assegnata alla variabile dichiarata nel parametro formale.
Quindi ora hai due diverse variabili con lo stesso nome in due ambiti diversi. Confuso, vero?
Gli argomenti e i parametri sono opposti esatti l'uno dell'altro, quindi usare lo stesso termine per entrambi non solo non avrebbe senso, sarebbe attivamente dannoso e confuso.
Un parametro è un "buco" che lasci nella definizione di una subroutine.
Un argomento è quello che usi per riempire quel buco nell'uso di una subroutine.
Pensa alla seguente implementazione ricorsiva in coda di un ciclo di conteggio:
def loop_times(n, func)
if n > 0
func(n)
loop_times(n-1, func)
end
end
loop_times(10, (n) → { print("Hello") })
# Hello
# Hello
# Hello
# Hello
# Hello
# Hello
# Hello
# Hello
# Hello
# Hello
La differenza tra il parametro n
e l'argomento n-1
è fondamentale per capire come funziona. Secondo l'ipotesi di Sapir-Whorf, il linguaggio che usiamo modella il modo in cui pensiamo, puoi immaginare come difficile sarebbe pensare a due cose fondamentalmente diverse che hanno < em> lo stesso nome ?
I parametri sono la lista degli ingredienti necessari in una funzione. Questo indica quali regole devono seguire gli argomenti per essere validi e quali argomenti sono necessari per la funzione da eseguire.
Gli argomenti sono gli ingredienti che si inseriscono nella funzione e devono rispettare tali regole.
Questi non sono sempre gli stessi perché potresti avere un parametro generico, ad es. in C ++ un oggetto di tipo T chiamato "firstParam" può essere qualsiasi cosa. Il parametro verrà sempre chiamato dall'identificatore "firstParam" nel suo ambito e sarà sempre riconosciuto come T, ma l'argomento può essere un intero, doppio, una stringa ecc.
Leggi altre domande sui tag programming-practices