Par exemple, vous pouvez passer le répertoire que vous souhaitez énumérer à la commande LS. Par conséquent, le chemin vers le répertoire est connu comme l'argument de la commande LS.
Cet article passera en revue les principes fondamentaux de l'acceptation et de l'analyse des arguments de ligne de commande dans le langage de programmation Rust à l'aide du module Env de la bibliothèque standard.
Configuration et importations
La première étape consiste à créer un répertoire pour stocker notre code source. Pour plus de simplicité, générons un ensemble de rouille en utilisant la cargaison comme:
$ cargo new Rust_arguments
Renommez votre projet à n'importe quel nom que vous voyez.
Ensuite, naviguez dans le répertoire source et ouvrez le principal.Fichier RS avec votre éditeur de texte préféré.
$ CD RUST_ARGUMENTS / SRC && vim Main.RsLa deuxième étape consiste à importer les modules requis. Nous utiliserons le module Env de la bibliothèque standard pour analyser les arguments en ligne de commande pour cet article.
Le module Env offre une fonction pour travailler avec des variables d'environnement, des arguments, etc. Pour l'utiliser, importez-le en utilisant AS:
Utilisez Std :: Env;Vecteur d'argument
À l'intérieur de la fonction principale, nous devons créer un vecteur de chaînes qui contiendront les arguments que nous transmettrons au programme.
Nous pouvons le faire en ajoutant la ligne suivante:
Laissez les args: vecLe code ci-dessus utilise la méthode Collect pour itérer sur l'argument transmis aux arguments et les ajouter au vecteur. Le vecteur est de type chaînes annoté par le VEC dans notre cas. C'est parce que la rouille ne peut pas déduire le type de collection de vecteur.
Arguments imprimés
Maintenant que nous pouvons accepter les arguments de commande et les stocker dans un vecteur, essayons de les imprimer. Nous pouvons le faire avec la fonction ITER, comme indiqué ci-dessous:
Utilisez Std :: Env;La fonction iter itérara sur chaque argument transmis au programme et l'imprimera. Si nous exécutons le code ci-dessus, nous devrions voir une sortie comme:
Le programme renvoie le nom de l'exécutable. Rust traitera le nom de l'exécutable comme le premier argument. Par conséquent, l'argument à l'index 0 dans le vecteur d'argument est le chemin d'accès au nom du programme.
Ceci est une caractéristique commune dans d'autres langages de programmation, notamment C, Python, GO, etc.
Si nous fournissons d'autres arguments après le nom du programme, Rust les ajoutera à l'index 1, 2, 3… au vecteur d'argument.
Par exemple:
cargo run argument1 argument2 argument3… argumentnNotez que l'exemple ci-dessus transmet 5 arguments au programme. Le résultat est comme indiqué:
Target \ Debug \ Rust_cmd_args.exeComme vous pouvez le voir, le programme imprime tous les arguments passés.
Accéder et enregistrer les arguments
Jusqu'à présent, nous n'avons imprimé que les arguments du programme. Bien que cela illustre comment fonctionnent les vecteurs d'arguments, il ne fait pas vraiment beaucoup.
Nous pouvons accéder et enregistrer chaque argument sur une variable pour développer notre programme.
Pour accéder à un argument, nous pouvons utiliser l'index comme:
Utilisez Std :: Env;Dans l'exemple ci-dessus, nous accédons au premier argument en utilisant l'index 1. Le résultat est comme indiqué:
Cargo Run Salut!Nous pouvons enregistrer l'argument dans une variable comme:
Utilisez Std :: Env;Dans le programme ci-dessus, nous acceptons de sauver le premier argument et de l'enregistrer dans une variable. Nous utilisons ensuite sa valeur dans un bloc if… else pour effectuer une action.
Nous pouvons exécuter le code ci-dessus comme:
$ cargo run salutLe programme doit retourner «salut en retour!" comme:
Si nous passons un autre argument qui n'équivaut pas «Hi», nous avons exécuté le bloc Else:
$ cargo coure byeConclusion
Fantastique! Nous avons un programme qui peut accepter, analyser, sauver et argumenter avec cela. Continuez à pratiquer pour en savoir plus.