После определения функции нам нужно передать в нее аргументы, чтобы получить желаемый результат. Большинство языков программирования поддерживают вызов по значению и вызов по ссылочным методам для передачи аргументов в функции.
В этой главе мы узнаем, что «вызов по значению» работает на объектно-ориентированном языке программирования, таком как C ++, и на функциональном языке программирования, таком как Python.
В методе Call by Value исходное значение не может быть изменено . Когда мы передаем аргумент функции, он сохраняется локально параметром функции в памяти стека. Следовательно, значения изменяются только внутри функции, и это не оказывает влияния вне функции.
Вызов по значению в 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
Следующая программа показывает, как Call by Value работает в 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
Это даст следующий результат —