Lập trình chức năng - Gọi theo giá trị

Sau khi xác định một hàm, chúng ta cần truyền các đối số vào nó để có được kết quả mong muốn. Hầu hết các ngôn ngữ lập trình đều hỗ trợcall by valuecall by reference các phương thức truyền đối số vào hàm.

Trong chương này, chúng ta sẽ tìm hiểu "call by value" hoạt động trong ngôn ngữ lập trình hướng đối tượng như C ++ và ngôn ngữ lập trình chức năng như Python.

Trong phương pháp Gọi theo giá trị, original value cannot be changed. Khi chúng ta truyền một đối số cho một hàm, nó sẽ được lưu trữ cục bộ bởi tham số hàm trong bộ nhớ ngăn xếp. Do đó, các giá trị chỉ được thay đổi bên trong hàm và nó sẽ không có ảnh hưởng bên ngoài hàm.

Gọi theo giá trị 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 = 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;   
}

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

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

Gọi theo giá trị 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 

# 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

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