Nota del redattore: questa domanda fa riferimento a parti di Rust precedenti a Rust 1.0, ma il concetto generale è ancora valido in Rust 1.0.Come leggere l'input dell'utente in Rust?
Ho intenzione di fare un tokenizzatore. Ho bisogno di leggere ogni riga dei tipi di utente e interrompere la lettura una volta che l'utente preme ctrl - D.
Ho cercato in giro e ho trovato solo one example su Rust IO che non viene nemmeno compilato. Ho esaminato la documentazione del modulo io
e ho rilevato che la funzione read_line()
fa parte dell'interfaccia , ma restituisce invece .
Il codice che vorrei sarebbe sostanzialmente simile al seguente in C++
vector<string> readLines() {
vector<string> allLines;
string line;
while (cin >> line) {
allLines.push_back(line);
}
return allLines;
}
Non credo Capisco come fusione funziona a Rust . :-(Non sembra tutto ciò che è simile ai cast a cui sono abituato in C/C++. Che cosa significa quando lanci qualcosa su un tipo di tratto? Semplicemente istruisce i compilatori a lasciarti legare quei metodi dal tipo di tratto sulla cosa da cui stai trasmettendo? (in questo caso, è qualsiasi cosa ritorna da 'stdin()' ...) –
Non ho molta familiarità con gli interni di Rust, ma immagino che il cast sia per il tipo di controllo perché il metodo effettivo per chiamare è deciso in fase di esecuzione –
hmm ok, questo è il tipo di soluzione che volevo, quindi la tua risposta è accettata :-) Grazie! –