openlang

상수 문자열을 담는 배열을 선언하는 방법

Delphi에서 아래 예시 같은 방식으로 문자열 배열을 선언할 수 있을까요?

{'alpha','beta','gamma'}
영어에서 번역원문 보기

이어지는 대화 4

서로의 근거를 따라
  1. 고유 링크

    이 예시처럼 동적 배열을 쓰는 방법도 있습니다:

    var
      CachedLabels: TArray<string>;
    
    function ReadLabels: TArray<string>;
    begin
      if Length(CachedLabels) = 0 then
        CachedLabels := TArray<string>.Create('Alpha', 'Beta', 'Gamma');
      Result := CachedLabels;
    end;

    힙에 있는 동적 배열을 런타임에 초기화하지만, 사용 위치에서 바로 초기화할 수 있게 하는 Delphi 동적 배열의 "유사 생성자"를 보여 줍니다. (주의: 이 예시는 스레드 안전하지 않습니다).

    배열 길이는 표준 Length() 함수로 구하면 되고, 유효한 인덱스 범위는 표준 Low()와 High() 함수로 알아낼 수 있습니다.

    이전 Delphi 버전에서는 TArray 대신 직접 정의한 동적 문자열 배열 타입을 쓰면 됩니다. 예를 들어:

    type
      TLabelArray = array of string;
    영어에서 번역원문 보기
  2. 고유 링크

    간접적인 방법도 있어요. 이런 함수를 작성하세요:

    procedure copyLabels(var destination: ArrayOfString; const source: Array Of String);
    var
      count, index: Integer;
    begin
      count := Length(source);
      SetLength(destination, count);
      for index := count-1 downto 0 do
        destination[index] := source[index];
    end;

    그런 다음 이렇게 함수를 호출하세요:

    copyLabels(labels, ['LabelA', 'LabelB', 'LabelC']);

    여기서:

    labels: ArrayOfString;
    영어에서 번역원문 보기

같은 질문의 다른 갈래

  1. Godot 3.3의 GDScript에서 일일이 나열하지 않고 enum 항목을 무작위로 고르기?

    GDScript에서 enum을 이렇게 선언했어요: 가능한 모든 변형을 나열하지 않고 enum 변형을 무작위로 고르고 싶어요. 나중에 변형을 더 추가해도 무작위로 선택하는 코드를 수정하지 않도록요. 이런 방법을 시도해 봤어요:…

    답글 2최근 활동 gdscript
  2. Nim 나머지 연산 문법

    Nim에서는 나머지를 어떻게 표현하나요? cell % 7 == 0를 쓰면 undeclared identifier: '%'가 나옵니다 Google로 검색해도 SO를 찾아봐도 답을 찾지 못했습니다.

    답글 2최근 활동 nim
  3. APL 함수에서 결과 반환하기

    함수 실행이 끝나면 어떤 값을 반환하게 하려면 어떻게 하나요? 예를 들어 이런 것이 있습니다: ROUTINE N ? N ⍴ 12 //이것은 1부터 12까지의 난수 N개를 만듭니다 (N은 함수의 인수입니다). 함수의 결과를 돌…

    답글 2최근 활동 apl