Programmazione funzionale - Call By Value

Dopo aver definito una funzione, è necessario passarvi gli argomenti per ottenere l'output desiderato. Supporta la maggior parte dei linguaggi di programmazionecall by value e call by reference metodi per passare argomenti nelle funzioni.

In questo capitolo, impareremo che "call by value" funziona in un linguaggio di programmazione orientato agli oggetti come C ++ e un linguaggio di programmazione funzionale come Python.

Nel metodo Call by Value, il original value cannot be changed. Quando passiamo un argomento a una funzione, viene memorizzato localmente dal parametro della funzione nella memoria dello stack. Quindi, i valori vengono modificati solo all'interno della funzione e non avrà alcun effetto all'esterno della funzione.

Chiama per valore in C ++

Il seguente programma mostra come funziona Call by Value in C ++:

#include <iostream> 
using namespace std; 

void swap(int a, int b) {    
   int temp; 
   temp = a; 
   a = b; 
   b = temp; 
   cout<<"\n"<<"value of a inside the function: "<<a; 
   cout<<"\n"<<"value of b inside the function: "<<b; 
}  
int main() {     
   int a = 50, b = 70;   
   cout<<"value of a before sending to function: "<<a; 
   cout<<"\n"<<"value of b before sending to function: "<<b; 
   swap(a, b);  // passing value to function 
   cout<<"\n"<<"value of a after sending to function: "<<a; 
   cout<<"\n"<<"value of b after sending to function: "<<b; 
   return 0;   
}

Produrrà il seguente output:

value of a before sending to function:  50 
value of b before sending to function:  70 
value of a inside the function:  70 
value of b inside the function:  50 
value of a after sending to function:  50 
value of b after sending to function:  70

Chiama per valore in Python

Il seguente programma mostra come funziona Call by Value in Python:

def swap(a,b): 
   t = a; 
   a = b; 
   b = t; 
   print "value of a inside the function: :",a 
   print "value of b inside the function: ",b 

# Now we can call the swap function 
a = 50 
b = 75 
print "value of a before sending to function: ",a 
print "value of b before sending to function: ",b 
swap(a,b) 
print "value of a after sending to function: ", a 
print "value of b after sending to function: ",b

Produrrà il seguente output:

value of a before sending to function:  50 
value of b before sending to function:  75 
value of a inside the function: : 75 
value of b inside the function:  50 
value of a after sending to function:  50 
value of b after sending to function:  75