return |
Retour |
|---|---|
| Rust | |
Syntaxe
| return valeur; |
| return; |
Paramètres
| Nom | Description |
|---|---|
| valeur | Ce paramètre permet de spécifier la valeur retournée par la fonction. |
Description
Ce mot réservé permet d'indiquer un retour de fonction.
Remarques
Permet de retourner une valeur d'une fonction.
Un retour marque la fin d'un chemin d'exécution dans une fonction :
L'option return n'est pas nécessaire lorsque la valeur renvoyée est la dernière expression de la fonction. Dans ce cas, l'élément ; est omis :
- fn foo() -> i32 {
- 3
- }
- assert_eq!(foo(), 3);
return renvoie immédiatement la fonction (un « retour anticipé ») :
- use std::fs::File;
- use std::io::{Error, ErrorKind, Read, Result};
-
- fn main() -> Result<()> {
- let mut file = match File::open("foo.txt") {
- Ok(f) => f,
- Err(e) => return Err(e),
- };
-
- let mut contents = String::new();
- let size = match file.read_to_string(&mut contents) {
- Ok(s) => s,
- Err(e) => return Err(e),
- };
-
- if contents.contains("impossible!") {
- return Err(Error::new(ErrorKind::Other, "oh non!"));
- }
-
- if size > 9000 {
- return Err(Error::new(ErrorKind::Other, "plus de 9000!"));
- }
-
- assert_eq!(contents, "Bonjour le monde !");
- Ok(())
- }
Dans les fermetures et les blocs désynchronisées, return renvoie une valeur provenant de la fermeture ou du bloc asynchrone, et non de la fonction parente :
Dernière mise à jour : Vendredi, le 1er Août 2025