
Photo by
noouchi
スーパー雑な Rust メモ : 文字列の引数 文字列の結合
せっかく Rust を勉強しようという熱が今あるんで、全くもって雑ですが、ごく個人的にメモした内容を note に載せておこうと思います。減るもんじゃないし。
関数に文字列の参照を渡すとき、引数の型は &str にしておくのが無難
fn main() {
let s = "aaa".to_string();
foo(&s);
bar(&s);
let s = "bbb";
// foo(&s); // Error : expected struct `String`, found `&str`
bar(&s);
}
fn foo(s: &String) {
println!("{}", s);
}
fn bar(s: &str) {
println!("{}", s);
}
引数として渡す値が &String 型でも &str 型でも、 &str で受け取る関数 bar の方は動作します。
文字列を整形したかったら + 演算子じゃなくて format! マクロを使っとけ
ffn main() {
let s = "aaa".to_string();
let t = "bbb".to_string();
let st = format!("{s} + {t} = {s}{t}", s=s, t=t);
println!("{}", st);
}
同じことを + 演算子でやろうとすると、ちょっと面倒くさい。
let st = String::from("") + &s + &String::from(" + ") + &t + &String::from(" = ") + &s + &t;
また気が向いたら別の内容も投稿します。
SN