StartprogrammingusingObjectPascal:DefaultValueParameters

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

인자의 기본값

프로시저와 함수에서 사용하는 인자에 기본 값을 지정할 수 있습니다. 이 경우 이들 인자에 값을 넘기는 것을 무시할 수 있으며, 값을 넘기지 않는경우 기본값을 사용하게 됩니다.

다음 예제를 보도록 합니다.

program defaultparam;

{$mode objfpc}{$H+}

uses
    {$IFDEF UNIX}{$IFDEF UseCThreads}
    cthreads,
    {$ENDIF}{$ENDIF}
    Classes
    { you can add units after this };

function SumAll(a, b: Integer; c: Integer = 0;
    d: Integer = 0): Integer;
begin
    result:= a + b + c + d;
end;
begin
    Writeln(SumAll(1, 2));
    Writeln(SumAll(1, 2, 3));
    Writeln(SumAll(1, 2, 3, 4));
    Write('Press enter key to close');
    Readln;
end.


이 예제에서 처음에는 두 개의 값을, 두번째는 세 개의 값을, 세번째는 네 개의 값을 사용하여 SumAll 함수를 세 번 호출했습니다. a와 b는 필수적인 인자이며, 기본값이 없기 때문에 모든 경우에 대해 값을 전달해야 합니다.

왼쪽부터 오른쪽으로 기본 인자 값의 전달을 무시할 수 있는데, 예를 들어 c에 대한 값 전달을 무시하려 한다면, d 에 대한 값을 보내지는 않을 것입니다.

기본 인자는 오른쪽으로부터 왼쪽으로 시작해야 합니다. 다음 예제처럼 기본 인자 다음에 기본값이 없는 인자를 선언할 수는 없습니다.

function ErrorParameters(a: Integer; b: Integer = 10; c: Integer; x: string);


가장 중요한 인자는 함수나 프로시저의 머리 부분 왼쪽에 놓고, 덜 중요한 것(무시할 수 있는 것)은 함수나 프로시저의 오른쪽에 놓습니다.