StartprogrammingusingObjectPascal:DefaultValueParameters

From 흡혈양파의 번역工房
Revision as of 10:42, 26 July 2012 by Onionmixer (talk | contribs) (SPOP 기본값인자 페이지 추가)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

기본 값 인자

프로시저와 함수에 대한 인자에 기본 값을 넣을 수 있습니다. 이 경우 이들 인자에 값을 넘기는 것을 무시할 수 있으며, 기본 값을 사용할 것입니다.

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

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);

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