整数から文字列に変換するにはどうすればよいですか?


94

型を整数から文字列に変換するコードをコンパイルできません。Rust for Rubyistsチュートリアルの例を実行しています。このチュートリアルには、次のようなさまざまな型変換があります。

"Fizz".to_str()および num.to_str()(ここnumで、は整数です)。

これらのto_str()関数呼び出しの大部分(すべてではないにしても)は非推奨になっていると思います。整数を文字列に変換する現在の方法は何ですか?

私が得ているエラーは次のとおりです。

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`

フォローしていない場合は申し訳ありませんが、intソースを検索しようとしましたが、doc.rust-lang.org / 0.11.0 / std / num / strconv / index.htmlを使用しているようですが、これはバイトベクトルを返します。 。さらに、to_string()メソッドがありますがString、それはリテラル文字列ではなく戻ります。
user3358302 2014

ハハ気にしないでください、私to_str()は別の戻り値だと思いました、私は使用しますto_string()
user3358302 2014

1
@ user3358302、静的に既知のリテラルを返さない限り、「リテラル文字列」と呼ばれるものを返すメソッドはありません。これらの値はタイプ&'static str、つまり静的な有効期間を持つ文字列スライスであり、動的に作成されたデータを使用して取得することはできません。文字列リテラルを使用してのみ作成できます。
ウラジミールマトベーエフ2014

知っておくと良い!このメソッドto_strは、Stringオブジェクトではなく文字列スライスを返すと思って混乱したと思います(あなたが言ったように、わかりやすくするために名前を変更しました)。
user3358302 2014

回答:


131

使用to_string()ここで例を実行):

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

あなたが正しい; 割り当てられた文字列が呼び出されるようになったため、一貫性を保つto_str()ためto_string()にRust1.0がリリースされる前に名前が変更されましたString

文字列スライスをどこかに渡す必要がある場合は、&strから参照を取得する必要がありますString。これは&、deref強制を使用して実行できます。

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

リンクしたチュートリアルは廃止されたようです。Rustの文字列に興味がある場合、Rustプログラミング言語の文字列の章を参照してください。


1
たくさんの人に感謝します、これは物事をクリアします:)また、文字列変換はまだ錆で変化しているように見えるので、私はそのチュートリアルを通過します。
user3358302 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.