반응형
복사와 복제의 차이점은 무엇입니까?
이 문제 는 구현 세부 사항 ( memcpy
vs ???) 일뿐임을 암시하는 것 같지만 차이점에 대한 명시적인 설명을 찾을 수 없습니다.
Clone
임의의 중복을 위해 설계되었습니다 Clone
. 유형에 대한 구현 T
은 새로운 .NET Framework를 만드는 데 필요한 임의의 복잡한 작업을 수행 할 수 있습니다 T
. 이것은 일반적인 특성 (전주곡에있는 것 제외)이므로 일반적인 특성처럼 메서드 호출 등으로 사용해야합니다.
Copy
특성은 안전하게 통해 중복 될 수있는 값 대표 memcpy
: 재 할당 항상 함수에 의해 값 인수를하는 통과 같은 것들을 memcpy
들, 등등에 대한 Copy
유형, 컴파일러가 그 고려할 필요가 없다는 것을 이해하고 이동 .
주요 차이점은 복제가 명시 적이라는 것입니다. 암시 적 표기법은 Copy
유형 이 아닌 이동을 의미 합니다.
// u8 implements Copy
let x: u8 = 123;
let y = x;
// x can still be used
println!("x={}, y={}", x, y);
// Vec<u8> implements Clone, but not Copy
let v: Vec<u8> = vec![1, 2, 3];
let w = v.clone();
//let w = v // This would *move* the value, rendering v unusable.
그런데 모든 Copy
유형은 Clone
. 그러나 동일한 작업을 수행 할 필요는 없습니다! 고유 한 유형 .clone()
의 경우은 임의의 방법이 될 수 있지만 암시 적 복사는 항상 구현이 memcpy
아닌을 트리거합니다 clone(&self)
.
참고 URL : https://stackoverflow.com/questions/31012923/what-is-the-difference-between-copy-and-clone
반응형
'programing' 카테고리의 다른 글
매우 큰 도커 이미지에 대한 컨텍스트 빌드 (0) | 2020.08.20 |
---|---|
PHP $ array [] = $ value 또는 array_push ($ array, $ value)에서 사용하는 것이 더 낫습니까? (0) | 2020.08.20 |
스칼라 유형 프로그래밍 리소스 (0) | 2020.08.19 |
html (+ css) : 줄 바꿈을위한 선호 위치 표시 (0) | 2020.08.19 |
xlsm 또는 xlsb 형식은 언제 사용해야합니까? (0) | 2020.08.19 |