s1 → s2 は正確には &s1[..]。&s1 と書いても参照外し型強制が発生するので多くの場合は問題ない。
型 | メリット | デメリット |
---|---|---|
String | 添字アクセスができない? | |
Vec<u8> | デバッグ出力時にASCII のコードポイントが出力されて、デバッグしにくい。 | |
Vec<char> | bstr が使えない。char同士の引き算ができない |
そもそも String ってなんで扱いにくいんだっけ。
b”hoge” って書けるのが char と比べたときの u8 の嬉しいところ?
String と & str で足し算ができる。String の方は move する。
String 同士の足し算はできない
let x = "hoge".to_string();
let y = "fuga".to_string();
let z = x + &y; // String と & str で足し算ができる。String の方は move する
// or
let z = format!("{} {}", x, y);
&str の場合
let x = "hoge";
let y = "fuga";
let z = x.to_string() + y;
// or
let z = format!("{} {}", x, y);
'a'..='z'