순수 함수
- 부수효과가 없는 함수
- 어떤 함수에 동일한 인자를 주었을 때 항상 같은 값을 리턴하는 함수
- 외부의 상태를 변경하지 않음
부수효과
- 외부의 상태를 변경하는 것
- 함수로 들어온 인자의 상태를 직접 변경하는 것
ex)
int add(int a, int b) {
return a + b;
}
여기서 add 함수는 인수로 같은 값을 주었을 때 리턴 값은 항상 같기 때문에 순수함수이다.
int c = 20;
int add2(int a, int b) {
return a + b + c;
}
System.out.println(add2(10, 20)); // 50
c = 10;
System.out.println(add2(10, 20)); // 40
add2 함수에 add 함수와 동일한 인수를 넣어도 결과값이 달라진다. 순수함수가 아니다.
class Exmaple {
int a;
int b;
}
...
int add2(Example example) {
example.a = 10;
...
}
위의 예제와 같이 외부 객체의 값을 다른 클래스의 메서드에서 값을 변경한다.
외부의 값을 변경했기 때문에 순수함수라고 할 수 없다.
'Backend > Java' 카테고리의 다른 글
@Retention (0) | 2022.08.15 |
---|---|
Annotation(@) (0) | 2022.08.15 |
람다식(Lambda Expression), 람다란(Lambda)? (0) | 2022.08.12 |
Reflection(리플렉션) (0) | 2022.08.08 |
직렬화 (0) | 2021.06.12 |