S-JIS[2024-09-16] 変更履歴

Rust Copyトレイト

Ruststd::marker::Copyのメモ。


概要

Copyトレイトは、コピー可能なことを表すトレイト
Copyトレイトはstd::preludeに含まれているので、useしなくても使える。

ここで言う「コピー」とは、ビット列の単純なコピーということらしい。(C言語のmemcpyレベルということか)

基本データ型(整数や浮動小数など)はCopyトレイトを実装しているので、コピー可能。

コピー可能ということは、変数に代入したり関数(やメソッド)へ渡したり関数から返したりする際に値をコピーできるということなので、所有権を気にする必要が無い(所有権の移動を伴わない)。


Copyトレイトを実装できる条件のひとつは、コンパイル時にデータのサイズが確定できること、らしい。
構造体にCopyトレイトを実装しようと思ったら、全てのフィールドの型がCopyトレイトを実装している必要がある。

また、Dropトレイトを実装している場合はCopyトレイトを実装できないらしい。


stdへ戻る / Rustへ戻る / 技術メモへ戻る
メールの送信先:ひしだま