Argomenti della riga di comando ruggine

Argomenti della riga di comando ruggine
Gli argomenti della linea di comando si riferiscono a una serie di valori o specificatori che vengono passati al nome di un programma terminale. Questi argomenti possono quindi modificare il comportamento del programma come definito nel codice sorgente.

Ad esempio, puoi passare la directory che desideri elencare al comando LS. Quindi, il percorso della directory è noto come argomento per il comando LS.

Questo articolo esaminerà i fondamenti di accettare e analizzare gli argomenti della riga di comando nel linguaggio di programmazione Rust usando il modulo Env dalla libreria standard.

Setup e importazioni

Il primo passo è creare una directory per archiviare il nostro codice sorgente. Per semplicità, generare un pacchetto di ruggine usando il carico come:

$ cargo New Rust_arguments

Rinomina il tuo progetto con qualsiasi nome che ritieni adatto.

Quindi, naviga nella directory di origine e apri il principale.File RS con il tuo editor di testo preferito.

$ CD RUST_ARGUMENTIS/SRC && Vim Main.Rs

Il secondo passo è importare i moduli richiesti. Useremo il modulo Env dalla libreria standard per analizzare gli argomenti della linea di comando per questo articolo.

Il modulo Env fornisce una funzione per lavorare con variabili di ambiente, argomenti, ecc. Per usarlo, importalo usando come:

Usa std :: env;

Vettore di argomento

All'interno della funzione principale, dobbiamo creare un vettore di stringhe che terranno gli argomenti che passeremo al programma.

Possiamo farlo aggiungendo la seguente riga:

Let Args: VEC = env :: args ().raccogliere();

Il codice sopra utilizza il metodo di raccolta per iterare l'argomento passato agli argomenti e aggiungerli al vettore. Il vettore è di tipo stringhe annotate dal VEC nel nostro caso. Questo perché la ruggine non può dedurre il tipo di raccolta vettoriale.

Stampa argomenti

Ora che possiamo accettare argomenti di comando e archiviarli in un vettore, provaci a stamparli. Possiamo farlo con la funzione ITER, come mostrato di seguito:

Usa std :: env;
fn main ()
Let Args: VEC = env :: args ().raccogliere();
per arg in args.iter ()
println!("", arg);

La funzione ITER iterirà su ogni argomento passato al programma e lo stamperà. Se eseguiamo il codice sopra, dovremmo vedere un output come:

Il programma restituisce il nome dell'eseguibile. Rust tratterà il nome dell'eseguibile come il primo argomento. Quindi, l'argomento all'indice 0 nel vettore dell'argomento è il percorso verso il nome del programma.

Questa è una caratteristica comune in altri linguaggi di programmazione, tra cui C, Python, Go, ecc.

Se forniamo altri argomenti dopo il nome del programma, Rust li aggiungerà all'indice 1, 2, 3 ... al vettore dell'argomento.

Per esempio:

Cargo run argomental1 argomento2 argomento3 ... argomento

Si noti che l'esempio sopra passa 5 argomenti al programma. Il risultato è come mostrato:

Target \ debug \ rust_cmd_args.exe
argomento1
argomento2
argomento3
..
argomento

Come puoi vedere, il programma stampa tutti gli argomenti superati.

Accesso e salvataggio di argomenti

Fino ad ora, abbiamo stampato solo gli argomenti dal programma. Anche se illustra come funzionano i vettori dell'argomento, non fa molto.

Possiamo accedere e salvare ogni argomento in una variabile per espandere il nostro programma.

Per accedere a un argomento, possiamo usare l'indice come:

Usa std :: env;
fn main ()
Let Args: VEC = env :: args ().raccogliere();
println!("", args [1]);

Nell'esempio sopra, accediamo al primo argomento usando l'indice 1. Il risultato è come mostrato:

Cargo Run Ciao!

Possiamo salvare l'argomento in una variabile come:

Usa std :: env;
fn main ()
Let Args: VEC = env :: args ().raccogliere();
Lascia che Greet = & Args [1];
if galling == "hi hi"
println!("Ciao Back!");
altro
println!("Accettiamo solo i saluti!")

Nel programma sopra, accettiamo di salvare il primo argomento e salvarlo in una variabile. Quindi usiamo il suo valore in un blocco if ... else per eseguire un'azione.

Possiamo eseguire il codice sopra come:

$ cargo run ciao

Il programma dovrebbe restituire “Ciao!" COME:

Se passiamo un altro argomento che non è uguale a "ciao", abbiamo eseguito il blocco else come:

$ cargo che corre ciao

Conclusione

Fantastico! Abbiamo un programma che può accettare, analizzare, salvare e argomenti con quello. Continua a praticare per saperne di più.