[c#] 람다식을 사용하여 어떻게 불변성을 유지할 수 있나요?
람다식(Lambda Expression)
Func<int, int, int> add = (a, b) => a + b;
Console.WriteLine(add(2, 3)); // 출력: 5
람다식은 익명 메서드를 나타냅니다. 이는 함수형 프로그래밍 스타일에 부합하며, 불변성을 유지하는 데 도움이 됩니다. 이를 통해 다음과 같이 불변성을 유지할 수 있습니다.
불변성 유지
-
읽기 전용 변수 사용
int x = 10; Func<int, int> square = num => num * num; int result = square(x);
이 예제에서
x
는 읽기 전용으로 선언되었기 때문에 불변입니다. 이는 람다식 내에서x
의 값이 변경되지 않음을 보장합니다. -
재할당 없는 불변 객체
var numbers = new List<int> { 1, 2, 3, 4, 5 }; var sum = numbers.Sum();
리스트
numbers
를 변경하지 않고 람다식Sum()
을 사용하여 합을 계산하는 경우, 해당 리스트는 불변합니다. -
순수 함수 사용
순수 함수는 동일한 입력에 대해 항상 동일한 결과를 반환하며, 외부 상태에 영향을 주지 않습니다.
람다식을 활용하여 불변성을 유지함으로써 코드의 예측 가능성과 안정성을 높일 수 있습니다.
참고 문헌:
- https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/lambda-expressions