Dev Study
Rust コース

9. Copy と Clone — ムーブしない型・明示的な複製

i32 や bool、char などの単純な型は Copy という性質を持ち、代入すると値がそのまま複製されます。ムーブが起きないので、代入後も元の変数を使い続けられます。

String のようにヒープを使う型は Copy ではありませんが、.clone() を呼べば中身ごと複製できます。clone は複製のコストが目に見える形でコードに残るため、「どこでコピーが発生しているか」を読み手が把握できます。

「ムーブされて使えない」というエラーに出会ったら、参照で済むか検討し、それでも両方の値が必要なら clone する、という順で考えるのが実務での経験則です。

▶ サンプルコードを実行してみよう(自由に書き換えてOK)

Rust
公式ドキュメントで詳しく ↗