How Can We Help?

Print

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.