文字列型の相関図

Untitled

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);

Range

'a'..='z'