Rust100本ノック: 数字を文字列に & 文字列の結合問題
期末試験対応とかでひーひーしてたのでちょっと休んでましたが再開。今朝はNo55,56をやってました。ここに来て(休んで手のど忘れも手伝って)、数値を文字列にする方法を忘れてしまっていたのですが、個人的にはまだ不可解という感じです。
let test_a = (100).to_string(); // OK(数字→文字列 は基本コレでOK)
let num = 100;
let test_b = (num/2).to_string();
let mut test_c = String::new();
test_c += "abc"; // OK
// test_c += test_b; // NG
数字を文字列にすることに関しては、to_string()を使えば済む話だと言うことは案外さっと思い出せたり確認できました。
問題は文字列の結合。"+"演算子で対応できるというのは予想できたのですが、実は型が問題でした。StringにStringを足すことがなにげにできないのね。でもヒントはちゃんと出てました。
- "+"演算子はString::add()にて処理される案件
- String::add()は引数として自身と&strを取っている
- 故に "+" を使うときはオペランドを &str にしておかないとエラーが出る
ちなみにこの件については、Rust by exampleにもしっかり出てました。
せめてStringが引数にあった時の対応版を…と思ったのですが、RustってJavaとかみたいに本気?のオブジェクト指向というわけではないんですよね。
この記事が気に入ったらサポートをしてみませんか?