Lập trình chức năng - Gọi theo tham chiếu

Trong Cuộc gọi bằng Tham chiếu, original value is changedbởi vì chúng tôi chuyển địa chỉ tham chiếu của các đối số. Các đối số thực tế và chính thức chia sẻ cùng một không gian địa chỉ, vì vậy bất kỳ sự thay đổi giá trị nào bên trong hàm đều được phản ánh bên trong cũng như bên ngoài hàm.

Gọi bằng tham chiếu trong C ++

Chương trình sau đây cho thấy cách Call by Value hoạt động trong 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 = 75;   
   cout<<"\n"<<"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;   
}

Nó sẽ tạo ra kết quả sau:

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:  75 
value of b after sending to function:  50

Gọi bằng tham chiếu trong Python

Chương trình sau đây cho thấy cách Call by Value hoạt động trong 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 
   return(a,b) 
    
# Now we can call swap function 
a = 50 
b =75 
print "value of a before sending to function: ",a 
print "value of b before sending to function: ",b 
x = swap(a,b) 
print "value of a after sending to function: ", x[0] 
print "value of b after sending to function: ",x[1]

Nó sẽ tạo ra kết quả sau:

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:  75 
value of b after sending to function:  50