배열

배열은 Ada에서 또 다른 기본적인 복합 타입(composite types) 계열을 제공합니다.

배열 타입 선언

Ada의 배열은 요소들의 연속적인 모음을 정의하는 데 사용되며, 이 요소들은 인덱싱(indexing)으로 선택될 수 있습니다. 다음은 간단한 예제입니다:

with Ada.Text_IO; use Ada.Text_IO;

procedure Greet is
    type My_Int is range 0 .. 1000;
    type Index is range 1 .. 5;

    type My_Int_Array is
        array (Index) of My_Int;
    --                  ^ 요소의 타입
    --        ^ 배열의 경계
    Arr : My_Int_Array := (2, 3, 5, 7, 11);
    --                     ^ 배열 리터럴(literal)
    --                       (애그리게이트)

    V : My_Int;
begin
    for I in Index loop
        V := Arr (I);
        --        ^ I번째 요소를 가져옴
        Put (My_Int'Image (V));
    end loop;
    New_Line;
end Greet;Code language: Ada (ada)

먼저 주목할 점은 우리가 배열의 크기 대신 인덱스 타입(index type)을 명시한다는 것입니다. 여기서 우리는 1부터 5까지의 범위를 갖는 Index라는 이름의 정수 타입을 선언했으므로, 각 배열 인스턴스(instance)는 5개의 요소를 가질 것이며, 첫 번째 요소는 인덱스 1에, 마지막 요소는 인덱스 5에 위치하게 됩니다.

이 예제에서는 인덱스로 정수 타입을 사용했지만, Ada는 더 일반적입니다: 모든 이산 타입(discrete type)이 배열 인덱스로 허용되며, 여기에는 열거 타입도 포함됩니다. 이것이 무엇을 의미하는지는 곧 보게 될 것입니다.


이 문서는 ‘Introduction to Ada'(저자: Raphaël Amiard, Gustavo A. Hoffmann, © AdaCore 2018–2024)를 Google Gemini가 한국어로 번역한 것입니다. 원저작물과 동일하게 CC BY 4.0 라이선스가 적용됩니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다