더북(TheBook)

코드가 어떻게 해석되는지 내부적으로 살펴보기 전에는 어떤 이득이 있는지 명확히 드러나지 않는다. 다음 코드는 컴파일러가 이 코드를 어떻게 변환하는지 나타낸 예다.

static void Main()
{
    var tmp = MethodReturningTuple();
    int a = tmp.x;
    int b = tmp.y;
    string name = tmp.text;

    Console.WriteLine($"a: {a}; b: {b}; name: {name}");
}

기존 코드가 훨씬 간략하긴 하지만, 이와 같이 세 개의 변수를 각각 선언한다고 해도 엄청 귀찮을 정도는 아니다. 하지만 tmp 변수가 추가되었다는 점은 이야기가 다르다. 변수의 이름에서 유추할 수 있듯이 이 변수는 임시 변수다. 이 변수는 단순히 메서드의 반환값을 받아와서 우리가 원하는 세 개의 변숫값(a, b, name)을 초기화하기 위한 용도로만 사용된다. tmp 변수가 극히 제한적으로 쓰이기는 하지만, 그럼에도 다른 변수와 사용 범위가 동일하기 때문에 다소 지저분하게 느껴질 수 있다. 세 개의 변수 중 하나를 암시적으로 타이핑하는 것도 가능하다. 이를 그림으로 나타내면 다음과 같다.

▲ 그림 12-1 분해 시 명시적, 암시적 타이핑을 함께 사용

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