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ż: