Fonctions
Une fonction en Rust est définie avec le mot clef fn
, doit être nommée, peut
prendre un certain nombre de paramètres qui doivent être typés, et peut
éventuellement retourner une valeur qui doit également être typée.
fn number_of_seconds_in_hours(hours: i32) -> i32 { hours * 60 * 60 } fn main() { println!("Seconds in 3 hours: {}", number_of_seconds_in_hours(3)); }
Une fonction non typée renvoie "unit" ()
.
Instructions et expressions
Le corps d'une fonction en Rust peut être composé d'instructions et d'expressions:
- une instruction effectue une action et ne retourne pas de valeur
- une expression est évaluée et retourne une valeur
Ainsi, let x = 6
est une instruction et ne renvoie pas de valeur,
alors que x + 3
est une expression et renvoie une valeur (le résultat de l'addition de x avec 3).
Une fonction renvoie la valeur de la dernière expression évaluée sur son flot de contrôle:
fn truc_idiot(x: i32) -> i32 { let y = 3; x + y } fn truc_idiot_bis(x: i32) { let y = 3; x + y; // return () } fn truc_idiot_ter(x: i32) { let y = 3; x + y; () // return () too } fn main() { println!("{}", truc_idiot(1)); truc_idiot_bis(2); truc_idiot_ter(3); }