Функциональное программирование - вызов по значению
После определения функции нам нужно передать ей аргументы, чтобы получить желаемый результат. Поддержка большинства языков программирования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