로컬 함수와 튜플 함께 사용하기
로컬 함수는 무겁지 않은 간단한 기능을 사용할 때 유용한데요. 이러한 로컬 함수와 튜플을 함께사용하는 예제를 만들어 보겠습니다. 다음 내용을 입력한 후 실행해 보세요.
로컬 함수와 튜플 함께 사용: 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() 메서드에서 출력합니다.