함수 결과

함수 결과 (Function results)

함수의 결과는 결과 변수에 값을 대입해서 설정해요. 이 변수는 함수 식별자이거나, ObjFPC·Delphi 모드에서 제공되는 특별한 Result 식별자예요.

출처: 문서

본문

함수의 결과는 결과 변수(result variable) 에 값을 대입함으로써 설정돼요. 결과 변수는 두 가지가 될 수 있어요.

  • 함수 식별자 그 자체
  • ObjFPC 또는 Delphi 모드에서만 사용할 수 있는 특별한 Result 식별자

기본적인 방식은 함수 이름에 값을 대입하는 거예요.

Function MyFunction : Integer;
begin
  MyFunction:=12; // Return 12
end;

Delphi나 ObjFPC 모드에서는 위 코드를 아래처럼 Result로도 쓸 수 있어요.

Function MyFunction : Integer;
begin
  Result:=12;
end;

Delphi 문법의 확장으로, ObjFPC 모드Exit 프로시저의 특별한 확장 형태도 지원해요.

Function MyFunction : Integer;
begin
  Exit(12);
end;

Exit 호출은 함수의 결과를 설정한 뒤 함수 선언 블록의 마지막 End로 점프해요. C 언어의 return 문과 같은 역할이라고 보면 돼요.

참고: 함수 결과는 참조 전달(pass-by-reference) 매개변수처럼 취급돼요. 특히 관리되는 타입(managed types)에서 중요한데, 함수 결과가 진입 시점에 non-nil일 수 있고 타입의 유효한 인스턴스로 설정될 수 있어요.

더 알아보기