2012-03-09 12 views
8

Per una funzione per restituire un valore in Pascal viene utilizzata l'assegnazione FunctionName := SomeVal;. Presumo che non si ferma l'esecuzione della funzione in quel luogo esatto come fa return in C. C'è qualcosa di simile a C return in Pascal? (Sto usando il compilatore FreePascal)Restituzione di un valore in Pascal

+1

Solo PERCHE ': La sintassi 'FunctionName: = SomeVal;' è antiquata; la sintassi corrente è 'Result: = SomeVal;', dove 'Result' è una variabile automaticamente disponibile del tipo di dati appropriato per abbinare la dichiarazione di funzione. Ad esempio: 'function Test: Integer; inizio Risultato: = 10; END; '. –

+3

Ken White: in Free Pascal, il risultato è afaik supportato solo in dialetti Delfi e delfi. (-S2/-SD). Anche altri pascal non hanno adottato il risultato centrico Delphi o solo per le modalità di compatibilità. L'ultimo standard Pascal documenta ancora questo –

risposta

10

È possibile utilizzare la procedura di uscita.

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

+1, mai sentito parlare di questa sintassi! Tuttavia potrebbe essere utile mettere una riga dopo "Esci" con qualche commento che la linea dopo "Esci" non verrà eseguita. – TLama

+1

L'ho capito. :) +1, Rodrigo. –

+1

+1 questa è una bella sintassi, aiuta ad evitare il temuto risultato + uscita combo. Fondamentalmente l'equivalente di "ritorno". – Thomas

Problemi correlati