루아 p.16 - 테이블 요소를 인자로 변환

루아 스크립트를 작성하다보면 테이블의 요소들을 인자로 넘겨줘야 하는 일이 간혹 발생합니다. 예를 들면 다음과 같은 경우입니다.

  • 예제1

    function main()
        local vector = { 12.9, 42.5, 9.3 };
        lcoal x = vector[ 1];
        lcoal y = vector[ 2];
        lcoal z = vector[ 3];

        print( "x = " .. x .. ", y = " .. y .. ", z = " .. z);
    end

위 예제는 unpack 함수를 사용하여 다음 예제와 같이 테이블의 요소를 각각의 인자에 대입시킬 수 있습니다.

  • 예제2

    function main()
        local vector = { 12.9, 42.5, 9.3 };
        lcoal x, y, z = unpack( vector);

        print( "x = " .. x .. ", y = " .. y .. ", z = " .. z);
    end

unpack은 다음과 같이 함수 인자로 전달할때도 유용하게 사용할 수 있습니다.

  • 예제3

    function SetVector( x, y, z)
        print( "x = " .. x .. ", y = " .. y .. ", z = " .. z);
    end

    function main()
        local vector = { 12.9, 42.5, 9.3 };
        SetVector( unpack( vector) );
    end

댓글 없음: