Функциональное программирование - вызов по значению

После определения функции нам нужно передать ей аргументы, чтобы получить желаемый результат. Поддержка большинства языков программированияcall by value и call by reference методы для передачи аргументов в функции.

В этой главе мы узнаем, что «вызов по значению» работает в объектно-ориентированном языке программирования, таком как C ++, и функциональном языке программирования, таком как Python.

В методе вызова по значению original value cannot be changed. Когда мы передаем аргумент функции, он сохраняется локально параметром функции в стековой памяти. Следовательно, значения изменяются только внутри функции, и вне функции это не повлияет.

Вызов по значению в C ++

Следующая программа показывает, как Call by Value работает в 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;   
}

Он выдаст следующий результат -

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

Вызов по значению в Python

Следующая программа показывает, как вызов по значению работает в 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

Он выдаст следующий результат -

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