Pemrograman Fungsional - Call By Value

Setelah mendefinisikan sebuah fungsi, kita perlu memasukkan argumen ke dalamnya untuk mendapatkan keluaran yang diinginkan. Sebagian besar bahasa pemrograman mendukungcall by value dan call by reference metode untuk meneruskan argumen ke dalam fungsi.

Dalam bab ini, kita akan belajar "panggilan berdasarkan nilai" bekerja dalam bahasa pemrograman berorientasi objek seperti C ++ dan bahasa pemrograman fungsional seperti Python.

Dalam metode Panggil dengan Nilai, file original value cannot be changed. Ketika kita mengirimkan argumen ke suatu fungsi, itu disimpan secara lokal oleh parameter fungsi dalam memori tumpukan. Oleh karena itu, nilai diubah di dalam fungsi saja dan tidak akan berpengaruh di luar fungsi.

Panggilan dengan Nilai di C ++

Program berikut menunjukkan bagaimana Call by Value bekerja di 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;   
}

Ini akan menghasilkan keluaran sebagai berikut -

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

Panggil dengan Nilai dengan Python

Program berikut menunjukkan bagaimana Call by Value bekerja dengan 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

Ini akan menghasilkan keluaran sebagai berikut -

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