apprendre-rust

Cours gratuits de Rust 🦀 en Francais 🇫🇷

View on GitHub

Sommaiređź“š

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 :

ℹ️ 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 ⏭️


Course created by SkwalExe and inspired by Dcode