함수형 프로그래밍-값으로 호출
함수를 정의한 후 원하는 출력을 얻으려면 인수를 전달해야합니다. 대부분의 프로그래밍 언어 지원call by value 과 call by reference 함수에 인수를 전달하는 메서드.
이 장에서는 C ++와 같은 객체 지향 프로그래밍 언어와 Python과 같은 함수형 프로그래밍 언어에서 "값별 호출"이 작동하는 방법을 배웁니다.
Call by Value 메서드에서 original value cannot be changed. 함수에 인수를 전달하면 스택 메모리의 함수 매개 변수에 의해 로컬로 저장됩니다. 따라서 값은 함수 내에서만 변경되며 함수 외부에는 영향을주지 않습니다.
C ++에서 값으로 호출
다음 프로그램은 C ++에서 Call by Value가 어떻게 작동하는지 보여줍니다.
#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에서 Call by Value가 작동하는 방식을 보여줍니다.
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