web-dev-qa-db-fra.com

Comment convertir un entier en chaîne?

Je suis incapable de compiler du code qui convertit un type d'un entier en une chaîne. Je présente un exemple tiré du didacticiel Rust for Rubyists , qui comporte divers types de conversions, tels que:

"Fizz".to_str() et num.to_str() (où num est un entier).

Je pense que la majorité (sinon la totalité) de ces appels de fonction to_str() ont été déconseillés. Quel est le moyen actuel de convertir un entier en chaîne?

Les erreurs que je reçois sont:

error: type `&'static str` does not implement any method in scope named `to_str`
error: type `int` does not implement any method in scope named `to_str`
53
user3358302

Il suffit d'utiliser to_string() ( exemple courant ici ):

let x: u32 = 10;
let s: String = x.to_string();
println!("{}", s);

Et vous avez raison, to_str() a été renommé to_string() avant Rust 1.0 a été publié pour des raisons de cohérence, car une chaîne allouée est maintenant appelée String .

Si vous devez passer une tranche de chaîne quelque part, vous devez obtenir une référence &str À partir de String. Cela peut être fait en utilisant & Et une coercition de Deref:

let ss: &str = &s;   // specifying type is necessary for deref coercion to fire
let ss = &s[..];     // alternatively, use slicing syntax

Le tutoriel auquel vous êtes lié semble être obsolète. Si vous êtes intéressé par les chaînes dans Rust, vous pouvez consulter le chapitre sur les chaînes de Le Rust Langage de programmation .

79
Vladimir Matveev