로컬 함수와 튜플 함께 사용하기
로컬 함수는 무겁지 않은 간단한 기능을 사용할 때 유용한데요. 이러한 로컬 함수와 튜플을 함께사용하는 예제를 만들어 보겠습니다. 다음 내용을 입력한 후 실행해 보세요.
로컬 함수와 튜플 함께 사용: LocalFunctionDescription.cs
using static System.Console; class LocalFunctionDescription { static void Main() { //① numbers = { 1, 2, 4, 8 } int[] numbers = { 0b1, 0B10, 0b0100, 0B0000_1000 }; var (sum, count) = Tally(numbers); WriteLine($"Sum : {sum}, Count : {count}"); } static (int, int) Tally(int[] values) { var r = (Sum: 0, Count: 0); foreach (var v in values) { Add(v, 1); } return r; //② 로컬 함수(local function): 함수 내에서 또 다른 함수 정의 void Add(int s, int c) { r.Sum += s; //합계 r.Count += c; //건수 } } }
실행 결과
Sum : 15, Count : 4
①처럼 numbers 배열에는 1, 2, 4, 8 같은 데이터가 4개 있습니다. 이것의 전체 합계는 15인 배열을 매개변수로 받아 ②의 로컬 함수에서 합과 건수를 계산한 후 이를 튜플 리터럴로 반환해서 다시 Main() 메서드에서 출력합니다.