더북(TheBook)

로컬 함수와 튜플 함께 사용하기

로컬 함수는 무겁지 않은 간단한 기능을 사용할 때 유용한데요. 이러한 로컬 함수와 튜플을 함께사용하는 예제를 만들어 보겠습니다. 다음 내용을 입력한 후 실행해 보세요.

로컬 함수와 튜플 함께 사용: 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() 메서드에서 출력합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.