Clone — 값의 복사본 생성 트레잇

Clone — 값의 복사본 생성 트레잇

Clone은 값의 복사본을 만드는 트레잇이에요. Copy와 달리 비트 단위 복사가 아닌, 타입이 정의한 복제 논리를 사용해요.

출처: Rust 공식 문서

본문

pub trait Clone: Sized {
    fn clone(&self) -> Self;

    fn clone_from(&mut self, source: &Self) { ... }
}

필수 메서드

// 값의 복사본을 반환해요.
fn clone(&self) -> Self;

제공 메서드

// source에서 값을 복사-대입해요.
fn clone_from(&mut self, source: &Self) { ... }

CloneBox, Vec, String, 모든 기본 타입 등 많은 타입에 구현돼요. #[derive(Clone)]로 쉽게 구현할 수 있어요. Copy 타입은 항상 Clone도 구현해요.

더 알아보기 (Learn more)