Out

Adam Boduch

out - słowo kluczowe języka Delphi

Słowo kluczowe out używane jest w połączeniu z procedurami i funkcjami, poprzedzenie parametru tym słowem oznacza iż jego wartość będzie zwracana przez referencję. Działanie prawie identyczne jak w przypadku poprzedzenia parametru słowem Var:

procedure Foo(var S);
procedure Bar(out S);

Różnica pomiędzy tymi dwoma deklaracjami jest taka, iż procedura Bar w ogóle nie będzie w stanie przyjmować wartości wejściowych - umożliwia tylko zwracanie wartości poprzez parametr S. Przykład:

procedure Foo(out S : String);
begin
  // parametr S jest pusty
end;

var
  Bar : String;
begin
  Bar := 'Hello World';
  Foo(Bar);
end.

W przedstawionym przykładzie, mimo iż przekazujemy wartość do parametru S - jego wartością będzie pusty ciąg. Poniższy przykład prezentuje użycie słowa kluczowego out w implementacji algorytmu Rot13:

procedure Rot13(var Input : String; out Output : String);
var
  StrLen, I : Integer;
begin
  StrLen := Length(Input);

  for I := 0 to StrLen do
  begin
    if (((Input[i] >= 'A') and (Input[i] <= 'M')) or ((Input[i] >= 'a') and (Input[i] <= 'm'))) then
	    Output := Output + Chr(Ord(Input[i]) + 13)
    else if (((Input[i] >= 'N') and (Input[i] <= 'Z')) or ((Input[i] >= 'n') and (Input[i] <= 'z'))) then
	    Output := Output + Chr(Ord(Input[i]) - 13);
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  Bar, S : String;
begin
  // przypisanie tekstu z kontrolki
  S := Edit1.Text;
  // szyfrowanie
  Rot13(S, Bar);
  // przypisanie zaszyfrowanego tekstu
  Edit1.Text := Bar;
end;

Do realizacji tego zadania równie dobrze można by było użyć funkcji.

Zobacz też:

0 komentarzy