Come possiamo aiutarti?
Subroutine In/Out. Passa per valore o riferimento
Ci sono due opzioni per trasmettere un oggetto ad una subroutine:
Passa per valore, indicato da una singola freccia a destra o in, passa un valore numerico nella variabile di subroutine che si definisce.
- Pass by value significa che un valore numerico viene passato dalla routine di chiamata a questa routine.
- Se il valore numerico proviene da una variabile tagnamed nella routine di chiamata, la subroutine non può influenzare il valore della variabile nel programma chiamante. Utilizza solo il valore passato.
Passando per riferimento, illustrato dalle frecce opposte che indicano in entrata e in uscita, passa un riferimento o una maniglia a una variabile nella routine di chiamata.
- Passare per riferimento significa che un “riferimento” ad un elemento di dati è passato dentro.
- Utilizzando un riferimento che viene passato in, è possibile accedere ai dati nella routine di chiamata e modificarli.
- La modifica dei dati trasmessi per riferimento è l’equivalente della trasmissione dei dati.
Gli array completi possono essere passati solo per riferimento. I singoli elementi dell’array possono essere passati solo per valore. Se si configura per passare un elemento di un array, si deve mettere l’indice dell’array tra parentesi quadre []
In 2 parole
| Passa per valore. Il valore non viene modificato. Non e’ lo stesso valore in Subroutine e nel programma principale. |
Passa per riferimento. Il valore viene modificato. E’ lo stesso valore in Subroutine e nel programma principale. |