Sommaiređź“š
- Que sont les arguments de ligne de commande âť“
- Le module
std::env
- Stocker les arguments dans un vecteur
- Exemple
Les arguments de ligne de commande
Que sont les arguments de ligne de commande âť“
Les arguments de ligne de commande sont les mot clés apres le nom d’un programme lorsqu’il est lancé depuis un terminal.
Ici, nous lançons le programme cow-translator
Ici, nous le lançons avec deux arguments de ligne de commande :
--
bonjour
ℹ️ Les differents arguments sont séparés par un espace.
Le module std::env
Pour acceder aux arguments de ligne de commande depuis un programme rust, nous devons d’abord importer le module std::env
.
use std::env;
Ce module nous permet d’acceder aux variables d’environment.
Stocker les arguments dans un vecteur
Pour stocker les arguments, nous allons utiliser un vecteur.
Pour les récupérer, on utilise la methode args
de std::env
.
let mut args: Vec<String> = env::args().collect();
Nous utilisons la methode collect
car la methode args
retourne un iterateur.
Cette fonction permet de transformer l’iterateur en vecteur.
Maintenant jetons un coup d’oeil à la valeur de args
:
let mut args: Vec<String> = env::args().collect();
println!("{:?}", args);
$ cargo run
["MonProgramme"]
Nous avons le nom de l’executable dans le vecteur car il est toujours stocké en tant que 0eme argument.
Nous n’en avons pas besoin, nous pouvons donc le retirer avec la methode remove
:
let mut args: Vec<String> = env::args().collect();
args.remove(0);
println!("{:?}", args);
$ cargo run bonjour
[]
Nous pouvons voir que le vecteur est désormais vide.
Exemple
Nous allons maintenant créer un programme simple qui dit
Bonjour, {nom} !
Ou {nom}
est le premier argument de la ligne de commande.
use std::env;
fn main() {
let mut args: Vec<String> = env::args().collect();
args.remove(0);
println!("Bonjour, {} !", args[0]);
}
$ cargo run -- Jean-Pierre
Bonjour, Jean-Pierre !
ℹ️ Avec cargo, nous utilisons
--
pour spécifier les arguments de ligne de commande qui seront passés à notre programme une fois compilé.
Accueil 🏠- Section suivante âŹď¸Ź