Clone — 값을 명시적으로 복제하는 트레이트
Clone — 값을 명시적으로 복제하는 트레이트
Clone은 값을 복제(clone) 하기 위한 트레이트예요. x.clone()처럼 명시적으로 호출해서 원본과 독립적인 새 값을 만든다는 점에서 Copy(암시적 비트 복사)와 달라요.
출처: Rust 공식 문서
본문
pub trait Clone: Sized {
// Required method
fn clone(&self) -> Self;
// Provided method
fn clone_from(&mut self, source: &Self) { ... }
}
필수 메서드는 clone이에요. 힙 데이터를 갖는 타입(예: String)은 clone이 실제 버퍼까지 복사해요. 보통 #[derive(Clone)]로 자동 구현하거나, 커스텀 복제 로직이 필요할 때 직접 구현해요. 필수 메서드는 clone_from으로 기본 구현을 덮어쓸 수 있어요.