2012-03-09 21 views
8

Dla funkcji zwracającej wartość w Pascal używane jest przypisanie FunctionName := SomeVal;. Zakładam, że nie zatrzymuje to wykonywania funkcji w tym samym miejscu co return w C. Czy jest coś podobnego do C return w języku Pascal? (Używam kompilatora FreePascal)Zwracanie wartości w Pascal

+1

Tylko dla FYI: Składnia 'FunctionName: = SomeVal;' jest przestarzała; obecna składnia to 'Result: = SomeVal;', gdzie 'Result' jest automatycznie dostępną zmienną odpowiedniego typu danych zgodną z deklaracją funkcji. Na przykład: 'function Test: Integer; Rozpocznij Wynik: = 10; koniec; '. –

+3

Ken White: W Free Pascal wynik jest afaik obsługiwany tylko w Delphi i delficko-podobnych dialektach. (-S2/-Sd). Inne pascale nie przyjęły wyniku centrycznego Delphi, ani tylko dla trybów zgodności. Ostatni standard Pascala nadal dokumentuje ten –

Odpowiedz

10

Możesz użyć procedury wyjścia.

function Foo (Value : integer) : Integer; 
begin  
    Exit(Value*2); 
    DoSomethingElse(); // This will never execute 
end; 
+1

+1, nigdy nie słyszałem o tej składni! Jednak może być dobrze wstawić linię po 'Wyjściu' z komentarzem, że linia po' Wyjściu' nie zostanie wykonana. – TLama

+1

Mam to. :) +1, Rodrigo. –

+1

+1 To jest dobra składnia, pomaga uniknąć strasznego kombo Wynik + wyjście. Zasadniczo odpowiednik "powrotu". – Thomas