始めに Rustの文字列型にはStringと&strがあります。 正直違いがよく分かっておらずStringは可変長、&strは固定長くらいの イメージしかなかったので、今回内部の仕組みを調べてまとめました。 ベクタやスライスの話が出てくるのでぜひ前回の記事も参考にどうぞ。 String Stringは標準ライブラリが提供する型です。 実体はバイト列のベクタ(Vec<u8>)なので、追加や削除が可能です。 文字列はヒープに格納されます。 Stringのコピー Stringをコピーするにはcloneを呼び出します。 するとヒープにある文字列も丸ごとコピーされます。 このように要素も含め全てコピーすることをディープコピーと言います。
