Return (programování)
Return je v programování název příkazu (obvykle klíčové slovo), který provádí návrat z podprogramu. V OOP se podprogramům obvykle říká metody. Podprogramy, které nevrací hodnotu, se obvykle nazývají procedury, podprogramy, které hodnotu vrací, se nazývají funkce. Ve většině jazyků musí provádění funkce skončit provedením příkazu return
, který specifikuje návratovou hodnotu (u některých jazyků se jako návratová hodnota použije výsledek posledního příkazu provedeného ve funkci). Provádění procedury může kromě provedení příkazu return
končit provedením posledního příkazu v proceduře. Po návratu pokračuje vykonávání programu v místě, odkud byl podprogram vyvolán (v případě procedury následujícím příkazem, v případě funkce vyhodnocováním výrazu, z něhož byla funkce vyvolána).
Příklad
V programovacím jazyku Java je příkaz return value;
(kde value
je hodnota, objekt nebo datový typ) používán v metodách. Nemá-li metoda vracet hodnotu, musí být deklarována jako void, a příkazy return
v ní použité nesmí uvádět hodnotu. Provedením příkazu return
je vykonávání podprogramu ukončeno a řízení je předáno do kódu, který metodu vyvolal.
public static int minimumFce(int n1, int n2) {
int min;
if (n1 > n2)
min = n2;
else
min = n1;
return min;
}
Metoda minimumFce
vrací hodnotu typu Integer. Metoda může být vyvolána například pro inicializaci proměnné při její deklaraci: int MIN = minimumFce(3,4);
. Tím se deklaruje proměnná MIN typu Integer a přiřadí se jí hodnota vrácená metodou minimumFce, která porovná hodnoty parametrů n1
a n2
, v tomto případě n1
= 3 a n2
= 4. Do lokální proměnné int min;
je uložena menší z hodnot parametrů; příkaz return min;
způsobí návrat z metody a předání výsledku. Do MIN
se tedy uloží 3.
Syntaxe
Detaily použití příkazu return
se mohou v různých jazycích lišit, v tabulce jsou uvedeny příklady:
Programovací jazyk | Zápis |
---|---|
Ada, Bash, C, C++, Java, PHP, C#, JavaScript, D | return value;
|
BASIC | RETURN
|
Lisp | (return value)
|
Perl, Ruby | return @values;
return $value;
return;
|
Python | return value
|
Smalltalk | ^ value
|
Visual Basic .NET | Return value
|
PowerShell | return value;
|
Různé jazyky symbolických adres (JSA) | ret
|
V některých JSA se příkaz jmenuje RTS
(ReTurn from Subroutine). V některých JSA nemá parametr příkazu return
význam návratové hodnoty (ta bývá uložena v registrech), ale počtu bytů, slov, parametrů, apod., které se mají při návratu z procedury odstranit ze zásobníku.