Accéder aux arguments de ligne de commande en Rust

Beginner

This tutorial is from open-source community. Access the source code

Introduction

Dans ce laboratoire, vous pouvez accéder aux arguments de ligne de commande en Rust en utilisant la fonction std::env::args, qui renvoie un itérateur qui produit une String pour chaque argument. Le premier argument dans le vecteur renvoyé est le chemin utilisé pour appeler le programme, tandis que le reste des arguments sont les paramètres de ligne de commande. Alternativement, vous pouvez utiliser des crânes comme clap pour une gestion plus avancée des arguments de ligne de commande.

Note : Si le laboratoire ne spécifie pas de nom de fichier, vous pouvez utiliser n'importe quel nom de fichier que vous voulez. Par exemple, vous pouvez utiliser main.rs, le compiler et l'exécuter avec rustc main.rs &&./main.

Arguments du programme

Bibliothèque standard

Les arguments de ligne de commande peuvent être accédés en utilisant std::env::args, qui renvoie un itérateur qui produit une String pour chaque argument :

use std::env;

fn main() {
    let args: Vec<String> = env::args().collect();

    // Le premier argument est le chemin utilisé pour appeler le programme.
    println!("Mon chemin est {}.", args[0]);

    // Le reste des arguments sont les paramètres de ligne de commande passés.
    // Appelez le programme comme ceci :
    //   $./args arg1 arg2
    println!("J'ai reçu {:?} arguments : {:?}.", args.len() - 1, &args[1..]);
}
$./args 1 2 3
Mon chemin est./args.
J'ai reçu 3 arguments : ["1", "2", "3"].

Crânes

Alternativement, il existe de nombreux crânes qui peuvent fournir des fonctionnalités supplémentaires lors de la création d'applications de ligne de commande. Le [Rust Cookbook] présente les meilleures pratiques sur la façon d'utiliser l'un des crânes d'arguments de ligne de commande les plus populaires, clap.

Sommaire

Félicitations ! Vous avez terminé le laboratoire Arguments du programme. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.